protected override void Execute(CodeActivityContext executionContext) { ITracingService tracer = executionContext.GetExtension <ITracingService>(); IWorkflowContext context = executionContext.GetExtension <IWorkflowContext>(); IOrganizationServiceFactory serviceFactory = executionContext.GetExtension <IOrganizationServiceFactory>(); IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId); try { DateTime dateToUse = DateToUse.Get(executionContext);; bool evaluateAsUserLocal = EvaluateAsUserLocal.Get(executionContext); if (evaluateAsUserLocal) { GetLocalTime glt = new GetLocalTime(); int? timeZoneCode = glt.RetrieveTimeZoneCode(service); dateToUse = glt.RetrieveLocalTimeFromUtcTime(dateToUse, timeZoneCode, service); } DateTime monthStartDate = new DateTime(dateToUse.Year, dateToUse.Month, 1, 0, 0, 0); DateTime monthEndDate = monthStartDate.AddMonths(1).AddDays(-1).AddHours(23).AddMinutes(59).AddSeconds(59).AddMilliseconds(999); MonthStartDate.Set(executionContext, monthStartDate); MonthEndDate.Set(executionContext, monthEndDate); } catch (Exception ex) { tracer.Trace("Exception: {0}", ex.ToString()); } }
protected override void ExecuteCrmWorkFlowActivity(CodeActivityContext context, LocalWorkflowContext localContext) { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (localContext == null) { throw new ArgumentNullException(nameof(localContext)); } DateTime dateToUse = DateToUse.Get(context);; bool evaluateAsUserLocal = EvaluateAsUserLocal.Get(context); if (evaluateAsUserLocal) { int?timeZoneCode = GetLocalTime.RetrieveTimeZoneCode(localContext.OrganizationService); dateToUse = GetLocalTime.RetrieveLocalTimeFromUtcTime(dateToUse, timeZoneCode, localContext.OrganizationService); } DateTime monthStartDate = new DateTime(dateToUse.Year, dateToUse.Month, 1, 0, 0, 0); DateTime monthEndDate = monthStartDate.AddMonths(1).AddDays(-1).AddHours(23).AddMinutes(59).AddSeconds(59).AddMilliseconds(999); MonthStartDate.Set(context, monthStartDate); MonthEndDate.Set(context, monthEndDate); }