Пример #1
0
        public static void Run(
            [QueueTrigger("new-appointments", Connection = "")] NewAppointmentRequest newAppointment,
            [Blob("scheduled-appointments/{rand-guid}")] out string scheduledAppointment,
            [Blob("rejected-requests/{rand-guid}")] out string rejectedAppointment,
            [Inject] IAppointmentDecider <NextAvailableAppointment> decider,
            ILogger log)
        {
            log.LogInformation($"{nameof(Scheduler)} started");

            scheduledAppointment = null;
            rejectedAppointment  = null;

            var nextAvailableAppointment = new NextAvailableAppointment
            {
                Email = newAppointment.Email,
                From  = DateTime.UtcNow,
                To    = DateTime.UtcNow.AddHours(1)
            };

            var isAvailable = decider.IsAvailable(nextAvailableAppointment);

            if (isAvailable)
            {
                log.LogInformation($"Appointment is scheduled for {nextAvailableAppointment.Email}");
                scheduledAppointment = JsonConvert.SerializeObject(nextAvailableAppointment);
            }
            else
            {
                log.LogInformation($"Appointment is rejected for {nextAvailableAppointment.Email}");
                rejectedAppointment = JsonConvert.SerializeObject(newAppointment);
            }
        }
        private void AddAppointment(NewAppointmentRequest request, int userId, int branchId)
        {
            var treatments = new List <CustomerScheduleTreatment>();

            foreach (var treatment in request.Treatments)
            {
                treatments.Add(new CustomerScheduleTreatment()
                {
                    Ttid      = treatment.Ttid,
                    Empno     = treatment.EmpNo,
                    StartTime = treatment.StartTime,
                    EndTime   = treatment.EndTime,
                    Qty       = treatment.Qty
                });
            }

            var customerSchedule = new CustomerSchedule()
            {
                CustomerId   = request.CustomerId,
                BookedDate   = request.BookedDate,
                Status       = AppoinmentConstant.PENDING,
                DepartmentId = request.DepartmentId,
                BranchId     = request.BranchId,
                EnteredBy    = request.EnteredBy,
                EnteredDate  = DateTime.Now,
                CustomerScheduleTreatments = treatments
            };

            _customerScheduleRepository.Add(customerSchedule);
            _customerScheduleRepository.SaveChanges();
        }
        private void EditAppointment(NewAppointmentRequest request, int userId, int branchId)
        {
            var schedule = _customerScheduleRepository.All.Where(x => x.Csid == request.CsId)
                           .Include(c => c.CustomerScheduleTreatments).FirstOrDefault();

            if (schedule != null)
            {
                foreach (var treatment in schedule.CustomerScheduleTreatments)
                {
                    var updatedTreatment = request.Treatments.Where(c => c.Ttid == treatment.Ttid).FirstOrDefault();

                    if (treatment != null && updatedTreatment != null)
                    {
                        treatment.Empno     = updatedTreatment.EmpNo;
                        treatment.StartTime = updatedTreatment.StartTime;
                        treatment.EndTime   = updatedTreatment.EndTime;
                        treatment.Qty       = updatedTreatment.Qty;
                    }
                }

                schedule.BookedDate   = request.BookedDate;
                schedule.Status       = request.Status;
                schedule.BranchId     = request.BranchId;
                schedule.CustomerId   = request.CustomerId;
                schedule.BranchId     = branchId;
                schedule.DepartmentId = request.DepartmentId;
                schedule.ModifiedBy   = userId;
                schedule.ModifiedDate = DateTime.Now;

                _customerScheduleRepository.SaveChanges();
            }
        }
 public void AddEditAppointment(NewAppointmentRequest request, int userId, int branchId)
 {
     if (request.CsId != 0)
     {
         EditAppointment(request, userId, branchId);
     }
     else
     {
         AddAppointment(request, userId, branchId);
     }
 }
Пример #5
0
 public IActionResult AddEditAppointment([FromBody] NewAppointmentRequest request)
 {
     try
     {
         _customerScheduleService.AddEditAppointment(request, UserId, BranchId);
         return(Ok(HttpStatusCode.Created));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex));
     }
 }