public void filterRecord(int length, string property, string value, string value2, ref ScheduleMaster[] scheduleMaster) { /* Fields that can be filter * Name * Desription * Status */ //Filter for a specific patient int fetch; scheduleMaster = null; if (property.Equals("Date")) { StringManipulation strManipulate = new StringManipulation(value, value2, "Date"); strManipulate.dateValue2 = strManipulate.dateValue2.AddHours(11); var records = db.ScheduleMasters.Where(sm => sm.Date >= strManipulate.dateValue && sm.Date <= strManipulate.dateValue2).Count(); if (records > length) { if ((records - length) > pageSize) fetch = pageSize; else fetch = records - length; var getScheduleMaster = db.ScheduleMasters.Where(sm => sm.Date >= strManipulate.dateValue && sm.Date <= strManipulate.dateValue2) .Include(sm => sm.UserInformation).Where(ui => ui.UserInformation.User.UserTypeId == 4) .OrderByDescending(sm => sm.Date).Skip((length)).Take(fetch).AsNoTracking().ToArray(); scheduleMaster = getScheduleMaster; } } else if (property.Equals("DentistFirstName")) { value = value.ToLower(); var records = db.ScheduleMasters.Where(sm => sm.UserInformation.FirstName.ToLower().Contains(value) || sm.UserInformation.FirstName.ToLower().ToLower().Equals(value)).Count(); if (records > length) { if ((records - length) > pageSize) fetch = pageSize; else fetch = records - length; var getScheduleMaster = db.ScheduleMasters.Where(sm => sm.UserInformation.FirstName.ToLower().Contains(value) || sm.UserInformation.FirstName.ToLower().ToLower().Equals(value)) .Include(sm => sm.UserInformation).Where(ui => ui.UserInformation.User.UserTypeId == 4) .OrderBy(sm => sm.Id).Skip((length)).Take(fetch).AsNoTracking().ToArray(); scheduleMaster = getScheduleMaster; } } else if (property.Equals("DentistMiddleName")) { value = value.ToLower(); var records = db.ScheduleMasters.Where(sm => sm.UserInformation.MiddleName.ToLower().Contains(value) || sm.UserInformation.MiddleName.ToLower().ToLower().Equals(value)).Count(); if (records > length) { if ((records - length) > pageSize) fetch = pageSize; else fetch = records - length; var getScheduleMaster = db.ScheduleMasters.Where(sm => sm.UserInformation.MiddleName.ToLower().Contains(value) || sm.UserInformation.MiddleName.ToLower().ToLower().Equals(value)) .Include(sm => sm.UserInformation).Where(ui => ui.UserInformation.User.UserTypeId == 4) .OrderBy(sm => sm.Id).Skip((length)).Take(fetch).AsNoTracking().ToArray(); scheduleMaster = getScheduleMaster; } } else if (property.Equals("DentistLastName")) { value = value.ToLower(); var records = db.ScheduleMasters.Where(sm => sm.UserInformation.LastName.ToLower().Contains(value) || sm.UserInformation.LastName.ToLower().ToLower().Equals(value)).Count(); if (records > length) { if ((records - length) > pageSize) fetch = pageSize; else fetch = records - length; var getScheduleMaster = db.ScheduleMasters.Where(sm => sm.UserInformation.LastName.ToLower().Contains(value) || sm.UserInformation.LastName.ToLower().ToLower().Equals(value)) .Include(sm => sm.UserInformation).Where(ui => ui.UserInformation.User.UserTypeId == 4) .OrderBy(sm => sm.Id).Skip((length)).Take(fetch).AsNoTracking().ToArray(); scheduleMaster = getScheduleMaster; } } //status else { StringManipulation strManipulate = new StringManipulation(value, value2, "Integer"); var records = db.ScheduleMasters.Where(sm => sm.Status == strManipulate.intValue).Count(); if (records > length) { if ((records - length) > pageSize) fetch = pageSize; else fetch = records - length; var getScheduleMaster = db.ScheduleMasters.Where(sm => sm.Status == strManipulate.intValue) .Include(sm => sm.UserInformation).Where(ui => ui.UserInformation.User.UserTypeId == 4) .OrderBy(sm => sm.Id).Skip((length)).Take(fetch).AsNoTracking().ToArray(); scheduleMaster = getScheduleMaster; } } }
public void saveScheduleMaster(ScheduleMaster scheduleMaster, string dummy) { db.ScheduleMasters.Add(scheduleMaster); db.SaveChanges(); }
public IHttpActionResult PostScheduleMaster(ScheduleMaster scheduleMaster) { response.status = "FAILURE"; if (!ModelState.IsValid) { response.message = "Bad request."; return Ok(response); } try { if(validateForSave(scheduleMaster.Date, scheduleMaster.DentistId)){ saveScheduleMaster(scheduleMaster, "dummy"); response.status = "SUCCESS"; response.objParam1 = scheduleMaster; } else response.message = "Created Schedule is conflict to other schedules."; } catch (Exception e) { response.message = e.InnerException.InnerException.Message.ToString(); } return Ok(response); }
public IHttpActionResult PutScheduleMaster(int id, ScheduleMaster scheduleMaster) { response.status = "FAILURE"; if (!ModelState.IsValid) { response.message = "Bad request."; return Ok(response); } if (id != scheduleMaster.Id) { response.message = "Schedule not found."; return Ok(response); } db.Entry(scheduleMaster).State = EntityState.Modified; try { var getScheduleDetail = db.ScheduleDetails.Where(sd => sd.ScheduleMasterId == scheduleMaster.Id).AsNoTracking().ToArray(); bool valid = true; //Check if details are not yet used or still open foreach (ScheduleDetail sd in getScheduleDetail) { if (sd.Status == 1) { valid = false; break; } } if (!valid || scheduleMaster.Status == 1) { response.message = "Schedule is already used so changing the dentist is not allowed."; return Ok(response); } db.SaveChanges(); response.status = "SUCCESS"; response.objParam1 = scheduleMaster; } catch (Exception e) { if (!ScheduleMasterExists(id)) { response.message = "Schedule not found."; return Ok(response); } else { response.message = e.InnerException.InnerException.Message.ToString(); } } return Ok(response); }
//Filtering for Schedule date, base on the status public IHttpActionResult GetScheduleMaster(int length, int status, string property, string value, string value2) { ScheduleMaster[] scheduleMaster = new ScheduleMaster[pageSize]; this.filterRecord(length, status, property, value, value2, ref scheduleMaster); if (scheduleMaster != null) return Ok(scheduleMaster); else return Ok(); }