public Response <string> Approve(int Id) { try { using (VDEntities entities = new VDEntities()) { var dbDoctor = entities.Doctors.Where(c => c.ID == Id).FirstOrDefault(); dbDoctor.IsApproved = true; dbDoctor.ValidUpto = DateTime.UtcNow.AddHours(5).AddMonths(3); entities.SaveChanges(); var vaccines = entities.Vaccines.ToList(); foreach (var vaccine in vaccines) { // add default brands amount and inventory count of doctor var brands = vaccine.Brands; foreach (var brand in brands) { BrandAmount ba = new BrandAmount(); ba.Amount = 0; ba.DoctorID = dbDoctor.ID; ba.BrandID = brand.ID; entities.BrandAmounts.Add(ba); BrandInventory bi = new BrandInventory(); bi.Count = 0; bi.DoctorID = dbDoctor.ID; bi.BrandID = brand.ID; entities.BrandInventories.Add(bi); entities.SaveChanges(); } } return(new Response <string>(true, null, "approved")); } } catch (Exception e) { return(new Response <string>(false, GetMessageFromExceptionObject(e), null)); } }
public Response <IEnumerable <BrandInventoryDTO> > Post(IEnumerable <BrandInventoryDTO> vaccineInventoryDTOs) { try { using (VDEntities entities = new VDEntities()) { foreach (var vaccineInventoryDTO in vaccineInventoryDTOs) { BrandInventory vaccineInventoryDB = Mapper.Map <BrandInventory>(vaccineInventoryDTO); entities.BrandInventories.Add(vaccineInventoryDB); entities.SaveChanges(); vaccineInventoryDTO.ID = vaccineInventoryDB.ID; } return(new Response <IEnumerable <BrandInventoryDTO> >(true, null, vaccineInventoryDTOs)); } } catch (Exception e) { return(new Response <IEnumerable <BrandInventoryDTO> >(false, GetMessageFromExceptionObject(e), null)); } }
public Response <DoctorScheduleDTO> UpdateDoctorSchedule() { try { using (VDEntities db = new VDEntities()) { // 1- get all vaccines var dbDoses = db.Doses.ToList(); var dbDoctors = db.Doctors.ToList <Doctor>(); foreach (var dbDoctor in dbDoctors) { var listOfIds = dbDoctor.DoctorSchedules.Select(x => x.DoseID); var newDoses = db.Doses.Where(x => !listOfIds.Contains(x.ID)).ToList(); foreach (Dose newDose in newDoses) { dbDoctor.DoctorSchedules.Add(new DoctorSchedule() { DoctorID = dbDoctor.ID, DoseID = newDose.ID, GapInDays = newDose.MinAge }); ////////////////////////////////////////////////// //// Add data in BrandInventory when //// new Vaccines/Doses/Brands are added by admin //// and then admin press UpdateDoctorSchedule var brands = newDose.Vaccine.Brands; foreach (var brand in brands) { BrandInventory existingBrandInventory = db.BrandInventories.Where(x => x.BrandID == brand.ID && x.DoctorID == dbDoctor.ID).FirstOrDefault <BrandInventory>(); if (existingBrandInventory == null) { db.BrandInventories.Add(new BrandInventory() { Count = 0, DoctorID = dbDoctor.ID, BrandID = brand.ID }); db.SaveChanges(); } BrandAmount existingBrandAmount = db.BrandAmounts.Where(x => x.BrandID == brand.ID && x.DoctorID == dbDoctor.ID).FirstOrDefault <BrandAmount>(); if (existingBrandAmount == null) { db.BrandAmounts.Add(new BrandAmount() { Amount = 0, DoctorID = dbDoctor.ID, BrandID = brand.ID }); db.SaveChanges(); } } ////////////////////////////////////////////////// db.SaveChanges(); } } return(new Response <DoctorScheduleDTO>(true, null, null)); } } catch (Exception e) { return(new Response <DoctorScheduleDTO>(false, GetMessageFromExceptionObject(e), null)); } }