コード例 #1
0
 public PostagemPorHashTagTransformador(ITweetService serviceTwitter_, IDwService serviceDw_)
 {
     _serviceTwitter = serviceTwitter_;
     _serviceDw      = serviceDw_;
 }
コード例 #2
0
        public void RetreiveAndSet(IConfiguration config, IJobTime job, Imapping mapping, IDwService dw)
        {
            int?duplicates            = null;
            var maxRecordsPerExcution = int.Parse(config.Get("MaxRecordsPerExcution").ToString());
            var languageCode          = int.Parse(config.Get("LanguageCode").ToString());
            var untilDate             = config.Get("UntilDate").ToString();
            var isRemoveDuplicate     = config.Get("IsRemoveDuplicate").ToString();

            var last  = DateTime.UtcNow;
            var first = job.RetrieveLastDateJob(config);

            if (!String.IsNullOrWhiteSpace(untilDate))
            {
                last = DateTime.ParseExact(untilDate, "yyyy-MM-dd", null);
            }

            int pageNumber = 1; int crmLogsItemsCount = 0; int fieldsChangeCount = 0;

            List <AuditLogModel> audtLogs;
            bool moreRecords = true;

            do
            {
                audtLogs = new List <AuditLogModel>();
                audtLogs.Clear();
                var rmr  = new RetrieveMultipleRequest();
                var resp = new RetrieveMultipleResponse();

                QueryExpression query = new QueryExpression()
                {
                    EntityName = "audit",
                    ColumnSet  = new ColumnSet(true),
                    Criteria   = new FilterExpression
                    {
                        FilterOperator = LogicalOperator.And,
                        Conditions     = { new ConditionExpression
                                           {
                                               AttributeName = "createdon",
                                               Operator      = ConditionOperator.Between,
                                               Values        = { first, last } //access
                                           } },
                    },
                    Orders = { new OrderExpression
                               {
                                   AttributeName = "createdon",
                                   OrderType     = OrderType.Ascending
                               } }
                };

                query.PageInfo = new PagingInfo
                {
                    PageNumber = pageNumber,
                    Count      = maxRecordsPerExcution
                };
                rmr.Query = query;
                resp      = (RetrieveMultipleResponse)_service.Execute(rmr);
                foreach (Entity entiyAuditLog in resp.EntityCollection.Entities)
                {
                    crmLogsItemsCount++;
                    Console.WriteLine(entiyAuditLog.Id);
                    // Retrieve the audit details and display them.
                    var auditDetailsRequest = new RetrieveAuditDetailsRequest {
                        AuditId = entiyAuditLog.Id
                    };

                    var auditDetailsResponse = (RetrieveAuditDetailsResponse)_service.Execute(auditDetailsRequest);

                    var changes = mapping.ToDwItems(_service, auditDetailsResponse.AuditDetail, languageCode, job);
                    if (changes.Any())
                    {
                        audtLogs.AddRange(changes);
                        fieldsChangeCount += changes.Count();
                    }
                }
                moreRecords = resp.EntityCollection.MoreRecords;
                if (moreRecords)
                {
                    pageNumber++;
                }
                dw.BulkAdd(audtLogs);
            }while (moreRecords);
            if (isRemoveDuplicate == "1")
            {
                try
                {
                    duplicates = dw.RemoveDuplicate();
                }
                catch (Exception e)
                {
                    _log("WARNING:can not remove duplicate see log");
                    _log(e.ToString());
                }
            }
            job.UpdateEndDateOnComplete(fieldsChangeCount, crmLogsItemsCount, duplicates, last);
        }
コード例 #3
0
 public Top5UsuarioTransformador(IUsuarioService serviceUsuario_, IDwService serviceDw_)
 {
     _serviceUsuario = serviceUsuario_;
     _serviceDw      = serviceDw_;
 }
コード例 #4
0
ファイル: DwController.cs プロジェクト: ejmartins/Twitter
 public DwController(IDwService service)
 {
     _service = service;
 }