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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
        /// <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();
        }
Esempio n. 5
0
        /// <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);
        }