public void CalculateDeadLineTest() { //Arrange DateTime date1 = new DateTime(2017, 2, 6); DateTime date2 = new DateTime(2017, 2, 7); DateTime date3 = new DateTime(2017, 2, 8); DateTime date4 = new DateTime(2017, 2, 9); DateTime date5 = new DateTime(2017, 2, 10); int allotedHours1 = 14; int allotedHours2 = 9; int allotedHours3 = 35; int allotedHours4 = 20; int allotedHours5 = 16; DateTime startDate = new DateTime(2017, 2, 6); BusinessCalendarService businessCalendarService = new BusinessCalendarService(); BusinessCalendar businessCalendar = new BusinessCalendar(businessCalendarService); //Act DateTime deadline1 = businessCalendar.CalculateDeadLine(allotedHours1, date1); DateTime deadline2 = businessCalendar.CalculateDeadLine(allotedHours2, date1); DateTime deadline3 = businessCalendar.CalculateDeadLine(allotedHours2, date3); DateTime deadline4 = businessCalendar.CalculateDeadLine(allotedHours3, date1); DateTime deadline5 = businessCalendar.CalculateDeadLine(allotedHours4, date1); DateTime deadline6 = businessCalendar.CalculateDeadLine(allotedHours5, date2); //Assert Assert.Equal(deadline1, (new DateTime(2017, 2, 7, 16, 30, 0))); Assert.Equal(deadline2, (new DateTime(2017, 2, 7, 10, 30, 0))); Assert.Equal(deadline3, (new DateTime(2017, 2, 10, 10, 30, 0))); Assert.Equal(deadline4, (new DateTime(2017, 2, 15, 16, 30, 0))); Assert.Equal(deadline5, (new DateTime(2017, 2, 9, 15, 30, 0))); }
protected internal virtual void initializeTaskDueDate(TaskEntity task, VariableScope variableScope) { Expression dueDateExpression = taskDefinition.DueDateExpression; if (dueDateExpression != null) { object dueDate = dueDateExpression.getValue(variableScope); if (dueDate != null) { if (dueDate is DateTime) { task.DueDate = (DateTime)dueDate; } else if (dueDate is string) { BusinessCalendar businessCalendar = BusinessCalender; task.DueDate = businessCalendar.resolveDuedate((string)dueDate); } else { throw new ProcessEngineException("Due date expression does not resolve to a Date or Date string: " + dueDateExpression.ExpressionText); } } } }
public ActionResult prevMonth(string id) { IBusinessCalendar changeMonth = new BusinessCalendar(); Month m2 = changeMonth.preMonth(int.Parse(id)); return(Json(m2, JsonRequestBehavior.AllowGet)); }
public void CalculateTimeTest() { //Arrange DateTime date1 = new DateTime(2017, 2, 6); DateTime date2 = new DateTime(2017, 2, 7); DateTime date3 = new DateTime(2017, 2, 8); DateTime date4 = new DateTime(2017, 2, 9); DateTime date5 = new DateTime(2017, 2, 10); //Act BusinessCalendarService businessCalendarService = new BusinessCalendarService(); BusinessCalendar businessCalendar = new BusinessCalendar(businessCalendarService); int sumTimeHours1 = businessCalendar.CalculateWorkTime(date1, date5); int sumTimeHours2 = businessCalendar.CalculateWorkTime(date1, date4); int sumTimeHours3 = businessCalendar.CalculateWorkTime(date2, date4); int sumTimeHours4 = businessCalendar.CalculateWorkTime(date2, date5); //Assert Assert.Equal(28, sumTimeHours1); Assert.Equal(21, sumTimeHours2); Assert.Equal(14, sumTimeHours3); Assert.Equal(21, sumTimeHours4); }
public virtual string resolveAndSetDuedate(ExecutionEntity context, TimerEntity job, bool creationDateBased) { BusinessCalendar businessCalendar = Context.ProcessEngineConfiguration.BusinessCalendarManager.getBusinessCalendar(type.calendarName); if (description == null) { throw new ProcessEngineException("Timer '" + context.ActivityId + "' was not configured with a valid duration/time"); } string dueDateString = null; DateTime duedate = null; // ACT-1415: timer-declaration on start-event may contain expressions NOT // evaluating variables but other context, evaluating should happen nevertheless VariableScope scopeForExpression = context; if (scopeForExpression == null) { scopeForExpression = StartProcessVariableScope.SharedInstance; } object dueDateValue = description.getValue(scopeForExpression); if (dueDateValue is string) { dueDateString = (string)dueDateValue; } else if (dueDateValue is DateTime) { duedate = (DateTime)dueDateValue; } else { throw new ProcessEngineException("Timer '" + context.ActivityId + "' was not configured with a valid duration/time, either hand in a java.util.Date or a String in format 'yyyy-MM-dd'T'hh:mm:ss'"); } if (duedate == null) { if (creationDateBased) { if (job.CreateTime == null) { throw new ProcessEngineException("Timer '" + context.ActivityId + "' has no creation time and cannot be recalculated based on creation date. Either recalculate on your own or trigger recalculation with creationDateBased set to false."); } duedate = businessCalendar.resolveDuedate(dueDateString, job.CreateTime); } else { duedate = businessCalendar.resolveDuedate(dueDateString); } } job.Duedate = duedate; return(dueDateString); }
/// <summary> /// Creates a consolidated business calendar for a given set of business centers /// </summary> /// <param name="cache">The cache.</param> /// <param name="centers">The centers.</param> /// <param name="nameSpace">The clients namespace</param> /// <returns></returns> public static IBusinessCalendar ToBusinessCalendar(ICoreCache cache, string[] centers, string nameSpace) { if (centers != null) { var dps = GetDateRuleParser(cache, centers, nameSpace); var significantDays = GetBusinessCentreHolidayDates(cache, Dedupe(dps.FpmlName), nameSpace); IBusinessCalendar result = new BusinessCalendar(significantDays, dps); return(result); } return(null); }
public ActionResult preMonth() { IBusinessCalendar changeMonth = new BusinessCalendar(); Month m1 = changeMonth.preMonth(5); ViewBag.days = m1.days; ViewBag.month = m1.name; ViewBag.year = "2020"; ViewBag.mData = m1; return(View()); }
/// <summary> /// Creates a consolidated business calendar for a given set of business centers /// </summary> /// <param name="centers">The centers.</param> /// <param name="cache">The cache.</param> /// <param name="nameSpace">The clients namespace</param> /// <returns></returns> public static IBusinessCalendar ToBusinessCalendar(ICoreCache cache, BusinessCenters centers, string nameSpace) { if (centers != null) { var calendars = centers.businessCenter.Select(businessCenter => businessCenter.Value).ToArray(); var dps = GetDateRuleParser(cache, calendars, nameSpace); var significantDays = GetBusinessCentreHolidayDates(cache, Dedupe(dps.FpmlName), nameSpace); IBusinessCalendar result = new BusinessCalendar(significantDays, dps); return(result); } return(null); }
public void ApplyOffsets() { const string offsetsString = "+2B;-4D;1W"; var calendar = new BusinessCalendar(new DateTime(2020, 02, 03)); Assert.IsTrue(DateOffsets.TryParse(offsetsString, calendar, out DateOffsets offsets)); Assert.AreEqual((2, DateOffsetKind.BusinessDays), offsets.Items[0]); Assert.AreEqual((-4, DateOffsetKind.Days), offsets.Items[1]); Assert.AreEqual((1, DateOffsetKind.Weekdays), offsets.Items[2]); Assert.AreEqual(new DateTime(2020, 02, 03), offsets.ApplyTo(new DateTime(2020, 02, 02))); Assert.AreEqual(offsetsString[1..], offsets.ToString()); // plus sign is acceptable in input, but not included in output
protected void Button1_Click(object sender, EventArgs e) { try { DateTime startDate = DateTime.Parse(TextBoxStartDate.Text); int hour = Int32.Parse(TextBoxHour.Text); BusinessCalendarService businessCalendarService = new BusinessCalendarService(); BusinessCalendar businessCalendar = new BusinessCalendar(BusinessCalendarServiceProvider.Current); DateTime deadLine = businessCalendar.CalculateDeadLine(hour, startDate); finishDate.Text = deadLine.ToString(); ErrorLabel.Visible = false; } catch (System.FormatException) { ErrorLabel.Visible = true; } }
/// <summary> /// Render the <see cref="System.Web.UI.WebControls.Calendar"/> /// </summary> /// <param name="cs"><see cref="ControlStruct"/></param> /// <returns><see cref="System.Web.UI.WebControls.Calendar"/></returns> protected static Calendar RenderCalendar(ControlStruct cs) { BusinessCalendar calendar = new BusinessCalendar(); if (cs != null) { calendar.ID = "cal" + cs.Name; //calendar.CssClass = ControlCellStyle.CssClass; calendar.Enabled = cs.Enabled; calendar.Width = Unit.Percentage(cs.Width); } return calendar; }
public virtual BusinessCalendarManager addBusinessCalendar(string businessCalendarRef, BusinessCalendar businessCalendar) { businessCalendars[businessCalendarRef] = businessCalendar; return(this); }
public virtual DateTime calculateRepeat() { BusinessCalendar businessCalendar = Context.ProcessEngineConfiguration.BusinessCalendarManager.getBusinessCalendar(CycleBusinessCalendar.NAME); return(businessCalendar.resolveDuedate(repeat)); }