|
|
#1 |
|
Участник
|
Не получается поставить даты в "0"
Добрый день,
Не совсем уверен, что выбрал правильную тему. Скорее всего подобные вопросы поднимались ранее, но в поиске не нашел, так что прошу сильно не пинать, если что то было. Суть Дела: В СРМ есть дни рождения людей, записанны в беспорядочном формате, т.е. дата и время, время часто разное. написал маленькое приложение, что бы исправить ситуацию: Код: using System;
using System.Collections.Generic;
using System.Globalization;
using Microsoft.Xrm.Client;
using Microsoft.Xrm.Client.Services;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
namespace Drop_Dates_To_Zero
{
class Program
{
static void Main(string[] args)
{
var connection = CrmConnection.Parse("Url=http://crm/***/; Domain=***; Username=********; Password=********;");
var service = new OrganizationService(connection);
var context = new CrmOrganizationServiceContext(connection);
int count = 0;
List<Entity> AllPerson = GetAllAccount(service);
foreach (var person in AllPerson)
{
if (person.Attributes.ContainsKey("birthdate"))
{
var olddate = ((DateTime)person.Attributes["birthdate"]).AddHours(4).Date.ToString(CultureInfo.CurrentCulture);
(person.Attributes["birthdate"]) = DateTime.Parse(olddate);
context.Update(person);
context.SaveChanges();
}
count++;
Console.Clear();
Console.WriteLine("{0} out of {1} done!", count, AllPerson.Count);
}
Console.WriteLine("Ok!");
}
private static List<Entity> GetAllAccount(IOrganizationService service)
{
int i = 0;
List<Entity> AllAccount = new List<Entity>();
try
{
var _service = service;
int fetchCount = 5000;
int pageNumber = 1;
List<Guid> dicacc = new List<Guid>();
QueryExpression QE = new QueryExpression();
QE.ColumnSet = new ColumnSet("contactid","fullname","birthdate");
QE.EntityName = "contact";
QE.PageInfo = new PagingInfo();
QE.PageInfo.Count = fetchCount;
QE.PageInfo.PageNumber = pageNumber;
QE.PageInfo.PagingCookie = null;
while (true)
{
EntityCollection collections = _service.RetrieveMultiple(QE);
if (collections.Entities.Count > 0)
{
foreach (Entity e in collections.Entities)
{
i++;
AllAccount.Add(e);
}
}
if (collections.MoreRecords)
{
QE.PageInfo.PageNumber++;
QE.PageInfo.PagingCookie = collections.PagingCookie;
}
else
{
break;
}
}
}
catch (Exception ex)
{
}
return AllAccount;
}
}
}Код: select top 10 birthdate from FilteredContact Where birthdate is not null Код: 2008-06-01 00:00:00.000 2008-09-04 00:00:00.000 1971-01-18 01:00:00.000 1985-03-21 01:00:00.000 1972-07-22 00:00:00.000 1988-09-12 00:00:00.000 1988-04-01 00:00:00.000 1988-08-03 00:00:00.000 1978-02-27 01:00:00.000 1975-04-16 00:00:00.000 |
|
|
|
|
|