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));
            }
        }
Exemple #2
0
        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));
            }
        }
Exemple #3
0
        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));
            }
        }