public ResponseData CreateRecurringSchedule(RecurringSchedulePostModel model) { try { string userId = GlobalMethods.GetUserID(User); if (string.IsNullOrWhiteSpace(userId)) { return(new ResponseData { Status = false, Message = "Unauthorized Access" }); } return(_doctorService.CreateRecurringScheduleById(userId, model)); } catch (Exception ae) { return(new ResponseData { Status = false, Message = ae.Message.ToString() }); } }
public ResponseData CreateRecurringScheduleById(string DoctorId, RecurringSchedulePostModel model) { using (IDbConnection con = Connection) { string message = string.Empty; try { con.Open(); string sql = @"select * from DoctorRecurringSchedules where DoctorId = @userId and RecordedAt between DATEADD(month, -1, GETDATE()) and GETDATE()"; // string sql = @"select * from DoctorRecurringSchedules where DoctorId=@userId and FromTime between @From and @To //or ToTime between @From and @To"; var check = con.Query <DoctorRecurringSchedule>(sql, new { @From = model.FromTime, @To = model.ToTime, @userId = DoctorId }).ToList(); if (check.Count > 0) { List <string> obj = new List <string>(); //already scheduled foreach (var item in check) { foreach (PropertyInfo pi in item.GetType().GetProperties()) { if (pi.PropertyType == typeof(bool)) { bool value = (bool)pi.GetValue(item); if (value) { obj.Add((pi.Name.Remove(0, 2)) + "day"); } } } message = string.Join(",", obj.ToArray()) + " are already been scheduled at this timing"; } return(new ResponseData { Status = true, Message = message }); } else { //create new schedule string query = @"Insert into DoctorRecurringSchedules Values(@DoctorId,@FromTime,@ToTime,@IsMon,@IsTues,@IsWednes,@IsThurs,@IsFri,@IsSatur,@IsSun,@RecordedAt)SELECT SCOPE_IDENTITY()"; for (int i = 0; i < model.Weekdays.Length; i++) { int insertedId = con.Query <int>(query, new { DoctorId, model.FromTime, model.ToTime, model.Weekdays[i].IsMon, model.Weekdays[i].IsTues, model.Weekdays[i].IsWednes, model.Weekdays[i].IsThurs, model.Weekdays[i].IsFri, model.Weekdays[i].IsSatur, model.Weekdays[i].IsSun, @RecordedAt = DateTime.Now }).FirstOrDefault(); } return(new ResponseData { Status = true, Message = "Schedule has been created." }); } } catch (Exception ae) { return(new ResponseData { Status = false, Message = ae.Message.ToString() }); } } }