コード例 #1
0
        public HttpResponseMessage Post(InsuranceProvider model)
        {
            try
            {
                Uow.InsuranceProviders.Add(model);

                //// START: Add Default Rebates
                var policyTypeList = GetPolicyTypes();
                foreach (var policyType in policyTypeList)
                {
                    var defaultRebateItem = new DefaultRebate
                    {
                        InsuranceProviderId = model.Id,
                        PolicyTypeId        = policyType.Id,
                        Rate = 0
                    };
                    Uow.DefaultRebates.Add(defaultRebateItem);
                }
                //// END: Add Default Rebates

                Uow.SaveChanges();

                LogAdd(model);

                return(Request.CreateResponse(HttpStatusCode.OK, model));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
        }
コード例 #2
0
        public async Task <IActionResult> Edit(int id, [Bind("InsuranceProviderId,ProviderName,ServiceOffered,EstablishedYear")] InsuranceProvider insuranceProvider)
        {
            if (id != insuranceProvider.InsuranceProviderId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(insuranceProvider);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!InsuranceProviderExists(insuranceProvider.InsuranceProviderId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(insuranceProvider));
        }
コード例 #3
0
        private void LogDelete(InsuranceProvider entity)
        {
            var creator = new LogCreatorApi(this, ActivityLogTypeEnum.DeleteInsuranceProvider);

            creator.AddInsuranceProvider(entity.Id);
            creator.SaveToLog(false);
        }
コード例 #4
0
        public void GetInsuranceCompanyIdTest()
        {
            MemoryMappings.AddCompnay("12345", "Acme Insurance");

            Mock <DbSet <SQLDatabase.EF.InsuranceProvider> > moq_Ins = new Mock <DbSet <InsuranceProvider> >();

            moq_Ins.SetupData(new List <SQLDatabase.EF.InsuranceProvider>());

            var nIns = new InsuranceProvider
            {
                Name      = "Acme Insurance",
                IsActive  = true,
                CompanyId = 12345
            };

            moq_Ins.Object.Add(nIns);

            nuContext.Setup(c => c.InsuranceProviders).Returns(moq_Ins.Object);
            NumedicsGlobalHelpers nh = new NumedicsGlobalHelpers(nuContext.Object);

            // verify insurance id is returned
            Assert.AreEqual(nIns.CompanyId, nh.GetInsuranceCompanyId(nIns.CompanyId.ToString()));
            // verify 0 is returned for insurance providers not found
            Assert.IsTrue(nh.GetInsuranceCompanyId("99999").Equals(0));
        }
コード例 #5
0
ファイル: HomeController.cs プロジェクト: urmiaking/Clinic
        public async Task <ActionResult> AddInsurance(string insuranceName, int discount = 0)
        {
            if (discount == 0)
            {
                TempData["Error"] = "درصد تخفیف صحیح نمی باشد";
                return(RedirectToAction("InsuranceProviders"));
            }

            if (!(discount > 0 && discount <= 100))
            {
                TempData["Error"] = "درصد تخفیف صحیح نمی باشد";
                return(RedirectToAction("InsuranceProviders"));
            }

            var insurance = new InsuranceProvider()
            {
                Discount      = discount,
                InsuranceName = insuranceName
            };

            await _db.InsuranceProviders.AddAsync(insurance);

            await _db.SaveChangesAsync();

            TempData["Success"] = "شرکت بیمه با موفقیت افزوده شد";
            return(RedirectToAction("InsuranceProviders"));
        }
コード例 #6
0
 public ActionResult Delete(int id)
 {
     using (HISDBEntities db = new HISDBEntities())
     {
         InsuranceProvider iProvider = db.InsuranceProviders.Where(x => x.ProviderID == id).FirstOrDefault <InsuranceProvider>();
         db.InsuranceProviders.Remove(iProvider);
         db.SaveChanges();
         return(Json(new { success = true, message = "Deleted Successfully" }, JsonRequestBehavior.AllowGet));
     }
 }
コード例 #7
0
        public static void Run(string[] args, InsuranceProvider settings)
        {
            new ServiceCollection()
            .AddSingleton <IInsuranceProvider>(settings)
            .BuildServiceProvider();

            CreateHostBuilder(args, settings.Port, settings)
            .Build()
            .Run();
        }
コード例 #8
0
        public async Task <IActionResult> Create([Bind("InsuranceProviderId,ProviderName,ServiceOffered,EstablishedYear")] InsuranceProvider insuranceProvider)
        {
            if (ModelState.IsValid)
            {
                _context.Add(insuranceProvider);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(insuranceProvider));
        }
コード例 #9
0
 private static IHostBuilder CreateHostBuilder(string[] args, int port, InsuranceProvider settings) =>
 Host.CreateDefaultBuilder(args)
 .ConfigureServices(sc =>
 {
     sc.AddSingleton <IInsuranceProvider>(settings);
 })
 .ConfigureWebHostDefaults(webBuilder =>
 {
     webBuilder
     .UseUrls($"http://*:{port}")
     .UseStartup <Startup>();
 });
コード例 #10
0
 public ActionResult Send(GenericModel <InsuranceModel> viewModel)
 {
     try
     {
         var success = InsuranceProvider.Save(Helpers.GetAuthenticator(), viewModel.Data);
         viewModel.ResultMessage = !success ? Resources.UnsuccesfullySaved : Resources.SuccesfullySaved;
     }
     catch (Exception ex)
     {
         viewModel.ErrorMessage = ex.GetBaseException().Message;
     }
     return(View("Index", viewModel));
 }
コード例 #11
0
        public ActionResult CreateCompany(InsuranceProvider model)
        {
            try
            {
                var entity = AutoMapper.Mapper.Map <InsuranceProvider>(model);
                Uow.InsuranceProviders.Add(entity);
                Uow.SaveChanges();

                return(RedirectToAction("Create", new { ClientId = 0 }));
            }
            catch
            {
                return(RedirectToAction("Create", new { ClientId = 0 }));
            }
        }
コード例 #12
0
        public ActionResult Delete(string id)
        {
            var viewModel = new GenericModel <InsuranceModel>();

            viewModel.Header = Resources.ResultsHeader;
            try
            {
                var success = InsuranceProvider.Delete(Helpers.GetAuthenticator(), id);
                viewModel.ResultMessage = !success ? Resources.UnsuccesfullyDeleted : Resources.SuccesfullyDeleted;
            }
            catch (Exception ex)
            {
                viewModel.ErrorMessage = ex.GetBaseException().Message;
            }
            return(View("Index", viewModel));
        }
コード例 #13
0
 public ActionResult AddModify(InsuranceProvider ip)
 {
     using (HISDBEntities db = new HISDBEntities())
     {
         if (ip.ProviderID == 0)
         {
             db.InsuranceProviders.Add(ip);
             db.SaveChanges();
             return(Json(new { success = true, message = "Saved Successfully" }, JsonRequestBehavior.AllowGet));
         }
         else
         {
             db.Entry(ip).State = EntityState.Modified;
             db.SaveChanges();
             return(Json(new { success = true, message = "Updated Successfully" }, JsonRequestBehavior.AllowGet));
         }
     }
 }
コード例 #14
0
        public void CreateInsuranceCompanyMapping()
        {
            try
            {
                var dataSet = TableAgent.DataSet.Tables[FbTableName].Rows;
                RecordCount = TableAgent.RowCount;

                foreach (DataRow row in dataSet)
                {
                    if (!String.IsNullOrEmpty(row["NAME"].ToString()))
                    {
                        var name = row["NAME"].ToString();
                        var kId  = row["KEYID"].ToString();

                        MemoryMappings.AddCompnay(kId, name);

                        var ips = new InsuranceProvider
                        {
                            Name              = name,
                            IsActive          = map.ParseFirebirdBoolean(row["ISACTIVE"].ToString()),
                            InActiveDate      = map.ParseFirebirdDateTime(row["INACTIVEDATE"].ToString()),
                            LastUpdatedByUser = Guid.Empty
                        };

                        var adr = new InsuranceAddress
                        {
                            Street1           = (row["STREET1"] is DBNull) ? String.Empty : row["STREET1"].ToString(),
                            Street2           = (row["STREET2"] is DBNull) ? String.Empty : row["STREET2"].ToString(),
                            Street3           = (row["STREET3"] is DBNull) ? String.Empty : row["STREET3"].ToString(),
                            City              = (row["CITY"] is DBNull) ? String.Empty : row["CITY"].ToString(),
                            State             = (row["STATE"] is DBNull) ? String.Empty : row["STATE"].ToString(),
                            Zip               = (row["ZIP"] is DBNull) ? String.Empty : row["ZIP"].ToString(),
                            Country           = (row["COUNTRY"] is DBNull) ? String.Empty : row["COUNTRY"].ToString(),
                            LastUpdatedByUser = Guid.Empty
                        };

                        var cont = new InsuranceContact
                        {
                            FullName          = (row["CONTACTNAME"] is DBNull) ? "No Name" : row["CONTACTNAME"].ToString(),
                            Email             = (row["EMAIL"] is DBNull) ? String.Empty : row["EMAIL"].ToString(),
                            LastUpdatedByUser = Guid.Empty
                        };

                        ips.InsuranceAddresses.Add(adr);
                        ips.InsuranceContacts.Add(cont);

                        if (CanAddToContext(ips.Name))
                        {
                            CompletedMappings.Add(ips);
                        }
                        else
                        {
                            MappingStatistics.LogFailedMapping("INSURANCECOS", kId, "InsuranceProviders", typeof(InsuranceProvider), JsonConvert.SerializeObject(ips), "Insurance Provider already exist in database.");
                            FailedCount++;
                        }
                    }
                }

                MappingStatistics.LogMappingStat("INSURANCECOS", RecordCount, "InsuranceProviders", CompletedMappings.Count, FailedCount);
            }
            catch (Exception e)
            {
                throw new Exception("Error creating InsuranceProvider mapping.", e);
            }
        }
コード例 #15
0
ファイル: HomeController.cs プロジェクト: urmiaking/Clinic
        public async Task <IActionResult> AddVisit(AddVisitViewModel visitViewModel)
        {
            if (visitViewModel.Reservation.DoctorId == 0 ||
                visitViewModel.Reservation.PatientId == 0)
            {
                return(StatusCode(404));
            }

            var reserve = await _db.Reservations
                          .FirstOrDefaultAsync(a =>
                                               a.DoctorId.Equals(visitViewModel.Reservation.DoctorId) &&
                                               a.PatientId.Equals(visitViewModel.Reservation.PatientId) &&
                                               a.ReserveDate.Equals(visitViewModel.Reservation.ReserveDate));

            if (reserve == null)
            {
                return(StatusCode(404));
            }

            string[] drugs  = null;
            string[] number = null;
            if (!string.IsNullOrEmpty(visitViewModel.DrugList))
            {
                string[] temp = null;
                try
                {
                    temp = visitViewModel.DrugList.Split('،');
                }
                catch (Exception)
                {
                    return(StatusCode(403));
                }

                drugs  = temp.Where((x, i) => i % 2 == 0).ToArray();
                number = temp.Where((x, i) => i % 2 != 0).ToArray();

                if (drugs.Any(a => a.Equals("")) || number.Any(a => a.Equals("")))
                {
                    return(StatusCode(403));
                }

                if (drugs.Length != number.Length)
                {
                    return(StatusCode(403));
                }
            }

            DateTime reserveDateTimeAgain = DateTime.MinValue;

            if (!(string.IsNullOrEmpty(visitViewModel.ReserveDateAgain) || string.IsNullOrEmpty(visitViewModel.ReserveTimeAgain)))
            {
                if (!TimeSpan.TryParse(visitViewModel.ReserveTimeAgain, out var time))
                {
                    return(StatusCode(402));
                }

                var dates = visitViewModel.ReserveDateAgain.Split('/');
                reserveDateTimeAgain = new DateTime(Int32.Parse(dates[0]), int.Parse(dates[1]), int.Parse(dates[2]), new PersianCalendar());
                reserveDateTimeAgain = reserveDateTimeAgain.Date + time;

                if (reserveDateTimeAgain.Date <= DateTime.Today.Date)
                {
                    return(StatusCode(406));
                }

                var dayOfWeek = reserveDateTimeAgain.DayOfWeek switch
                {
                    DayOfWeek.Sunday => "یکشنبه",
                    DayOfWeek.Monday => "دوشنبه",
                    DayOfWeek.Tuesday => "سه شنبه",
                    DayOfWeek.Wednesday => "چهارشنبه",
                    DayOfWeek.Thursday => "پنج شنبه",
                    DayOfWeek.Saturday => "شنبه",
                    _ => null
                };

                if (string.IsNullOrEmpty(dayOfWeek))
                {
                    return(StatusCode(401));
                }

                var day = await _db.WeekDays.FirstOrDefaultAsync(a =>
                                                                 a.DoctorId.Equals(visitViewModel.Reservation.DoctorId) &&
                                                                 a.DayName.Equals(dayOfWeek));

                switch (time.Hours)
                {
                case 8 when !day.EightTen.Equals("خالی"):
                    return(StatusCode(400));

                case 10 when !day.TenTwelve.Equals("خالی"):
                    return(StatusCode(400));

                case 12 when !day.TwelveFourteen.Equals("خالی"):
                    return(StatusCode(400));

                case 14 when !day.FourteenSixteen.Equals("خالی"):
                    return(StatusCode(400));
                }


                var isAvailableReserve = await _db.Reservations
                                         .AnyAsync(a =>
                                                   a.DoctorId.Equals(visitViewModel.Reservation.DoctorId) &&
                                                   a.ReserveDate.Equals(reserveDateTimeAgain));

                var isPatientBusy = await _db.Reservations
                                    .AnyAsync(a =>
                                              a.PatientId.Equals(reserve.PatientId) &&
                                              a.ReserveDate.Equals(reserveDateTimeAgain) &&
                                              a.ReserveStatus.Contains("در انتظار ویزیت"));

                if (isPatientBusy)
                {
                    return(StatusCode(409));
                }

                if (isAvailableReserve)
                {
                    return(StatusCode(405));
                }
            }

            InsuranceProvider insurance = null;

            if (!string.IsNullOrEmpty(visitViewModel.InsuranceProviderName))
            {
                if (drugs == null)
                {
                    return(StatusCode(409));
                }
                insurance = await _db.InsuranceProviders
                            .FirstOrDefaultAsync(a =>
                                                 a.InsuranceName.Equals(visitViewModel.InsuranceProviderName));
            }

            if (!reserveDateTimeAgain.Equals(DateTime.MinValue))
            {
                var reserveAgain = new Reservation()
                {
                    Doctor        = await _db.Doctors.FindAsync(visitViewModel.Reservation.DoctorId),
                    Patient       = await _db.Patients.FindAsync(visitViewModel.Reservation.PatientId),
                    ReserveDate   = reserveDateTimeAgain,
                    ReserveStatus = "در انتظار ویزیت"
                };

                await _db.Reservations.AddAsync(reserveAgain);

                await _db.SaveChangesAsync();
            }

            reserve.ReserveStatus = "ویزیت شده";

            var newVisit = new Visit()
            {
                CauseOfPatientReferral = visitViewModel.Visit.CauseOfPatientReferral,
                DoctorAssessment       = visitViewModel.Visit.DoctorAssessment,
                DoctorNote             = visitViewModel.Visit.DoctorNote,
                Reservation            = reserve,
                InsuranceProvider      = insurance
            };
            await _db.Visits.AddAsync(newVisit);

            await _db.SaveChangesAsync();

            _db.Reservations.Update(reserve);
            await _db.SaveChangesAsync();

            if (drugs != null)
            {
                var newPrescription = new Prescription()
                {
                    PaymentMethod = "نقدی",
                    Status        = "پرداخت نشده",
                    Visit         = newVisit
                };
                await _db.Prescriptions.AddAsync(newPrescription);

                await _db.SaveChangesAsync();

                int i = 0;
                foreach (var drug in drugs)
                {
                    var drugDb = await _db.Drugs.FirstOrDefaultAsync(a => a.Name.Equals(drug));

                    if (drugDb != null)
                    {
                        var newPresDrug = new PrescriptionDrug()
                        {
                            Drug         = drugDb,
                            Prescription = newPrescription,
                            Count        = int.Parse(number[i]),
                            IsBought     = false
                        };
                        i++;
                        await _db.PrescriptionDrugs.AddAsync(newPresDrug);

                        await _db.SaveChangesAsync();
                    }
                    else
                    {
                        var unknownCategory = await _db.DrugCategories
                                              .FirstOrDefaultAsync(a =>
                                                                   a.Name.Equals("نامشخص"));

                        if (unknownCategory == null)
                        {
                            var newUnknownCategory = new DrugCategory()
                            {
                                Name = "نامشخص"
                            };
                            await _db.DrugCategories.AddAsync(newUnknownCategory);

                            await _db.SaveChangesAsync();

                            unknownCategory = newUnknownCategory;
                        }

                        var newDrug = new Drug()
                        {
                            Name         = drug,
                            Count        = 0,
                            DrugCategory = unknownCategory,
                            Cost         = 9999,
                            Instruction  = "نامشخص",
                            Status       = false
                        };
                        await _db.Drugs.AddAsync(newDrug);

                        await _db.SaveChangesAsync();

                        var newPresDrug = new PrescriptionDrug()
                        {
                            Drug         = newDrug,
                            Prescription = newPrescription,
                            Count        = int.Parse(number[i]),
                            IsBought     = false
                        };
                        i++;
                        await _db.PrescriptionDrugs.AddAsync(newPresDrug);

                        await _db.SaveChangesAsync();
                    }
                }
            }

            return(StatusCode(200));
        }