Exemple #1
0
        public IActionResult AddFromFile()
        {
            var model = new AddFromFileViewModel();


            var allClinics = _clinicRepository.GetAll()
                             .Select(a => new SelectListItem
            {
                Text = a.Name, Value = a.Id.ToString()
            }
                                     ).ToList();

            model.Clinics = allClinics;
            if (User.IsInRole(Models.User.DOCTOR_ROLE))
            {
                var doctorId = User.FindFirstValue(ClaimTypes.NameIdentifier);

                var clinicId = _clinicRepository.GetDoctorsClinics(doctorId).FirstOrDefault().Id;

                model.ClinicId = clinicId;
            }



            return(View(model));
        }
Exemple #2
0
        public IActionResult AddFromFile(AddFromFileViewModel model)
        {
            try
            {
                var cases = VirusCaseMap.ReadCSVFile(model.File.OpenReadStream());



                foreach (var item in cases)
                {
                    item.Id = Guid.NewGuid().ToString();
                    var region = _regionRepository.GetByName(item.Region.Name);
                    if (region == null)
                    {
                        throw new Exception($"Region {item.Region.Name} not exist");
                    }
                    else
                    {
                        item.RegionId = region.Id;
                    }

                    var mode = _workModeRepository.GetByName(item.WorkMode.Name);


                    if (mode == null)
                    {
                        throw new Exception($"Work mode {item.WorkMode.Name} not exist");
                    }
                    else
                    {
                        item.WorkModeId = mode.Id;
                    }

                    if (User.IsInRole(Models.User.DOCTOR_ROLE))
                    {
                        var user = _userManager.GetUserAsync(User).Result;

                        if (string.IsNullOrEmpty(user.ClinicId))
                        {
                            throw new Exception($"Current doctor have no clinic");
                        }
                        else
                        {
                            item.ClinicId = user.ClinicId;
                        }
                    }
                    else
                    {
                        item.ClinicId = model.ClinicId;
                    }

                    item.WorkMode = mode;
                    item.Region   = region;
                    _virusCaseRepository.Add(item);


                    _logger.LogInformation("Virus case added.");
                }
                return(RedirectToAction(nameof(List)));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, ex.Message);

                var allClinics = _clinicRepository.GetAll()
                                 .Select(a => new SelectListItem
                {
                    Text = a.Name, Value = a.Id.ToString()
                }
                                         ).ToList();
                model.Clinics = allClinics;

                return(View(model));
            }



            return(RedirectToAction("AddFromFile"));
        }