/// <summary> /// Initializes new instance of <see cref="TermCalculationLogStore"/>. /// </summary> /// <param name="calculationParameters">Parameters to term calculation.</param> /// <param name="calculationTermKind">Kind of calculation term.</param> public TermCalculationLogStore(CaseCalculationLoggerRequest calculationParameters, CaseTermStates calculationTermKind, CultureInfo userCulture) { CalculationParameters = calculationParameters.Parameters; RegistrationDate = DateTime.Parse(calculationParameters.RegistrationDate).ToString(); CalculationTermKind = calculationTermKind; UserCulture = userCulture; CurrentDateTime = DateTime.UtcNow.ToString(); }
private ServiceTermResponse ExecuteCalculateTerms(DateTime startDate, CaseTermInterval termInterval, TimeZoneInfo userTimeZone, CaseTermStates mask) { var calendarutility = new CalendarUtility(UserConnection); var response = new ServiceTermResponse(); response.ReactionTime = mask.HasFlag(CaseTermStates.ContainsResponse) ? calendarutility.Add(startDate, termInterval.ResponseTerm, userTimeZone) as DateTime? : null; response.SolutionTime = mask.HasFlag(CaseTermStates.ContainsResolve) ? calendarutility.Add(startDate, termInterval.ResolveTerm, userTimeZone) as DateTime? : null; return(response); }
/// <summary> /// Returns time interval for this strategy. /// </summary> /// <param name="mask">Flags which indicate which values are already filled.</param> /// <returns>Time interval.</returns> public override CaseTermInterval GetTermInterval(CaseTermStates mask) { var result = new CaseTermInterval(); var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, EntitySchemaName); TimeColumnData timeColumns = AddTimeColumns(ref esq); string calendarColumnName = esq.AddColumn("Calendar.Id").Name; ApplyFilters(ref esq); EntityCollection entityCollection = esq.GetEntityCollection(UserConnection); if (entityCollection.IsNotEmpty()) { var entity = entityCollection[0]; Guid calendarId = entity.GetTypedColumnValue <Guid>(calendarColumnName) == default(Guid) ? GetCalendarId() : entity.GetTypedColumnValue <Guid>(calendarColumnName); if (calendarId == default(Guid)) { return(result); } result = PrepareResult(entity, mask, timeColumns, calendarId); } return(result); }
private ServiceTermResponse ExecuteRecalculateTerms(DateTime startDate, CaseTermInterval termInterval, IEnumerable <DateTimeInterval> intervals, TimeZoneInfo userTimeZone, CaseTermStates mask) { var calendarutility = new CalendarUtility(UserConnection); var response = new ServiceTermResponse(); var dateTime = ConvertFromUtc(DateTime.UtcNow, userTimeZone); response.ReactionTime = mask.HasFlag(CaseTermStates.ContainsResponse) ? calendarutility.Add(dateTime, termInterval.ResponseTerm, intervals, userTimeZone) as DateTime? : null; response.SolutionTime = mask.HasFlag(CaseTermStates.ContainsResolve) ? calendarutility.Add(dateTime, termInterval.ResolveTerm, intervals, userTimeZone) as DateTime? : null; return(response); }