private RecurrenceSchedule GetRecurrenceSchedule(ScheduledTriggerRequest request) { RecurrenceSchedule schedule = new RecurrenceSchedule(); if (request.Schedule.Hours != null) { schedule.Hours = request.Schedule.Hours; } if (request.Schedule.Minutes != null) { schedule.Minutes = request.Schedule.Minutes; } if (request.Frequency.Equals(Constants.Schedule.Month, StringComparison.InvariantCultureIgnoreCase)) { if (request.Schedule.ScheduleRecurrences != null && request.Schedule.ScheduleRecurrences.Count > 0) { schedule.MonthlyOccurrences = GetMonthlyScheduleRecurrence(request.Schedule.ScheduleRecurrences); } else { schedule.MonthDays = request.Schedule.MonthDays; } } else if (request.Frequency.Equals(Constants.Schedule.Week, StringComparison.InvariantCultureIgnoreCase)) { schedule.WeekDays = GetScheduleWeekDays(request.Schedule.WeekDays); } return(schedule); }
public RecurrenceSchedule ToSdkObject() { var recurrenceSchedule = new RecurrenceSchedule(); this.AdditionalProperties?.ForEach(item => recurrenceSchedule.Add(item.Key, item.Value)); return(recurrenceSchedule); }
/// <summary> /// Creates a new recurrence schedule /// </summary> /// <param name="recurrenceTypeId">The recurrence type id</param> /// <param name="schedule">The recurrence schedule</param> /// <returns></returns> public RecurrenceSchedule CreateNewRecurrenceSchedule(int recurrenceTypeId, string schedule) { using var ctx = new MyBillsContext(); var recurrenceType = ctx.RecurrenceType.FirstOrDefault(x => x.Id == recurrenceTypeId); var userBillRecurrenceSchedule = new RecurrenceSchedule { RecurrenceType = recurrenceType, RecurrenceTypeId = recurrenceTypeId, Schedule = schedule }; ctx.UserBillRecurrenceSchedule.Add(userBillRecurrenceSchedule); ctx.SaveChanges(); return(userBillRecurrenceSchedule); }
/// <summary> /// Create a new user bill /// </summary> /// <param name="userId">The user id</param> /// <param name="bill">The bill model</param> /// <param name="model">The recurrence model</param> /// <param name="recurrenceSchedule">The recurrence schedule</param> public void CreateNewUserBill(int userId, Bill bill, IRecurrenceModel model, RecurrenceSchedule recurrenceSchedule) { using var ctx = new MyBillsContext(); var billDetail = new UserBillDetail { UserId = userId, BillId = bill.Id, Month = DateTime.Today.Month, Year = DateTime.Today.Year, RecurrenceTypeName = recurrenceSchedule.RecurrenceType.Name, RecurrenceTypeId = recurrenceSchedule.RecurrenceTypeId, Schedule = recurrenceSchedule.Schedule, RecurrenceScheduleId = recurrenceSchedule.Id }; CreateUserBills(ctx, model, billDetail); ctx.SaveChanges(); }
/// <summary> /// Creates a new user bill. /// </summary> /// <param name="userId">The user id</param> /// <param name="bill">The bill object</param> /// <param name="recModel">The recurrence model</param> /// <param name="recSchedule">The recurrence schedule</param> /// <returns></returns> public bool CreateNewUserBill(int userId, Bill bill, IRecurrenceModel recModel, RecurrenceSchedule recSchedule) { try { var newBill = _billRepository.CreateNewBill(bill); var newRecSchedule = _userBillRecurrenceScheduleRepository.CreateNewRecurrenceSchedule(recSchedule.RecurrenceTypeId, recSchedule.Schedule); _userBillRepository.CreateNewUserBill(userId, newBill, recModel, newRecSchedule); } catch (Exception e) { _logRepository.WriteLog(LogLevel.Error, "UserBillService.CreateNewUserBill", e.Message, e); return(false); } return(true); }