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); } }
public IActionResult AddEditAppointment([FromBody] NewAppointmentRequest request) { try { _customerScheduleService.AddEditAppointment(request, UserId, BranchId); return(Ok(HttpStatusCode.Created)); } catch (Exception ex) { return(BadRequest(ex)); } }