コード例 #1
0
        public override async Task <IActionResult> Edit(Guid id, ImlAppDetailDTO model)
        {
            if (id != model.Id)
            {
                return(NotFound());
            }

            if (string.IsNullOrEmpty(model.EDRPOU) && string.IsNullOrEmpty(model.INN))
            {
                ModelState.Clear();
                ModelState.AddModelError("EDRPOU", "Поле необхідне для заповнення");
                ModelState.AddModelError("INN", "Поле необхідне для заповнення");
                return(View(model));
            }

            if (model.OrgType == OrgType.FOP)
            {
                if (model.PassportNumber.Length != 6 && model.PassportNumber.Length != 9)
                {
                    ModelState.AddModelError("PassportNumber", "Довжина номеру паспорту має бути 6, або 9 (при викориристанні ID-картки)");
                    return(View(model));
                }
                if (string.IsNullOrEmpty(model.PassportSerial))
                {
                    if (model.PassportNumber.Length != 9)
                    {
                        ModelState.AddModelError("PassportSerial", "Поле необхідне для заповнення (при використанні паспорту)");
                        return(View(model));
                    }
                }
            }

            if (model.StreetId != Guid.Empty && model.CityId != Guid.Empty)
            {
                // ATU
                var newSubjAddress = new SubjectAddress
                {
                    StreetId  = model.StreetId,
                    PostIndex = model.PostIndex,
                    Building  = model.Building,
                };
                if (!_atuAddressService.SaveAddress(newSubjAddress))
                {
                    ModelState.AddModelError("", "Вулиця не знайдена у довіднику");
                    return(View(model));
                }
                else
                {
                    model.AddressId = newSubjAddress.Id;
                }
            }


            var appId = await _imlApplicationService.SaveApplication(model, true);

            return(RedirectToAction("Details", new { id = appId }));
        }
コード例 #2
0
        public async Task<IActionResult> EditSgd(Guid id, string returnUrl, ImlOrganizationExtFullDTO model)
        {
            if (id != model.Id)
            {
                return NotFound();
            }

            if (string.IsNullOrEmpty(model.EDRPOU))
            {
                ModelState.Clear();
                ModelState.AddModelError("EDRPOU", "Поле необхідне для заповнення");
                return View(model);
            }

            if (model.StreetId != Guid.Empty && model.CityId != Guid.Empty)
            {
                // ATU
                var newSubjAddress = new SubjectAddress
                {
                    StreetId = model.StreetId,
                    PostIndex = model.PostIndex,
                    Building = model.Building,
                };
                if (!_atuAddressService.SaveAddress(newSubjAddress))
                {
                    ModelState.Clear();
                    ModelState.AddModelError("", "Вулиця не знайдена у довіднику");
                    return View(model);
                }
                else
                {
                    model.AddressId = newSubjAddress.Id;
                }
            }

            var errors = await _service.SaveNewOrg(model);

            if (errors.Any())
            {
                foreach (var (key, value) in errors)
                {
                    ModelState.Clear();
                    ModelState.AddModelError(key, value);
                }

                return View(model);
            }

            return await Task.Run(() =>
            {
                return Redirect(returnUrl.Contains('?')
                    ? $"{returnUrl}&orgId={model.Id}"
                    : $"{returnUrl}?orgId={model.Id}");
            });

        }
コード例 #3
0
        public bool AddSubjectAddress(SubjectAddress subjectAddress)
        {
            var maxSubjectAddressId = _subjectAddresses.Max(x => x.SubjectAddressId);

            subjectAddress.SubjectAddressId = maxSubjectAddressId + 1;
            subjectAddress.AddressId        = _subjectAddresses.First(x => x.SubjectAddressId == maxSubjectAddressId).AddressId + 1;
            subjectAddress.SubjectId        = _subjectAddresses.First(x => x.SubjectAddressId == maxSubjectAddressId).SubjectId + 1;
            _subjectAddresses.Add(subjectAddress);

            return(true);
        }
コード例 #4
0
        public ActionResult <SubjectAddressDto> Post([FromBody] SubjectAddressDto subjectAddress)
        {
            var addressDto = subjectAddress.Address;
            var nameDto    = subjectAddress.Subject;


            try
            {
                if (addressDto.Address == null)
                {
                    return(BadRequest("Address is mandatory"));
                }
                var addressDetails = addressDto.Address.Split(' ');
                var addressModel   = new Address
                {
                    StreetNumber = addressDetails.Length > 0 ? addressDetails[0] : "",
                    Direction    = addressDetails.Length > 1 ? addressDetails[1] : "",
                    StreetName   = addressDetails.Length > 2 ? addressDetails[2] : "",
                    StreetType   = addressDetails.Length > 3 ? addressDetails[3] : "",
                    City         = addressDto.City,
                    State        = addressDto.State,
                    Zip          = addressDto.Zip
                };

                var nameModel = new Name
                {
                    FirstName = nameDto.FirstName,
                    LastName  = nameDto.LastName,
                    Mi        = nameDto.Mi,
                    Suffix    = nameDto.Suffix
                };

                var subjectAddressModel = new SubjectAddress
                {
                    Address = addressModel,
                    Subject = nameModel
                };

                _contactRepository.AddSubjectAddress(subjectAddressModel);

                return(CreatedAtAction(nameof(GetSubjectAddress), new { id = subjectAddressModel.SubjectAddressId }, subjectAddress));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                throw;
            }
        }
コード例 #5
0
        public bool AddSubjectAddress(SubjectAddress subjectAddress)
        {
            if (subjectAddress == null)
            {
                throw new ArgumentNullException(nameof(subjectAddress));
            }

            if (subjectAddress.Address == null)
            {
                throw new ArgumentNullException(nameof(subjectAddress.Address));
            }

            if (subjectAddress.Subject == null)
            {
                throw new ArgumentNullException(nameof(subjectAddress.Subject));
            }

            //Save Subject, Address and relation in that order.
            _contactContext.Add(subjectAddress.Subject);
            _contactContext.Add(subjectAddress.Address);
            _contactContext.Add(subjectAddress);

            return(_contactContext.SaveChanges() > 0);
        }
コード例 #6
0
        public bool SaveAddress(SubjectAddress newSubjectAddress)
        {
            var street = _dataService.GetDto <AtuStreetDTO>(p => p.Id == newSubjectAddress.StreetId).SingleOrDefault();

            if (street == null)
            {
                return(false);
            }

            var subjAddress = _dataService.GetEntity <SubjectAddress>(p =>
                                                                      p.StreetId == newSubjectAddress.StreetId && p.Building == newSubjectAddress.Building &&
                                                                      p.PostIndex == newSubjectAddress.PostIndex).SingleOrDefault();

            if (subjAddress != null)
            {
                newSubjectAddress.Id = subjAddress.Id;
                return(true);
            }

            newSubjectAddress.AddressType = street.Caption;
            _dataService.Add(newSubjectAddress);
            _dataService.SaveChanges();
            return(true);
        }
コード例 #7
0
        public override async Task <IActionResult> Edit(Guid id, PrlAppDetailDTO model)
        {
            if (id != model.Id)//check
            {
                return(NotFound());
            }
            if (model.OrgType == OrgType.FOP)
            {
                if (ModelState.ContainsKey("EDRPOU"))
                {
                    ModelState["EDRPOU"].ValidationState = ModelValidationState.Valid;
                }
                if (ModelState.ContainsKey("OrgDirector"))
                {
                    ModelState["OrgDirector"].ValidationState = ModelValidationState.Valid;
                }
                if (model.PassportNumber.Length != 6 && model.PassportNumber.Length != 9)
                {
                    ModelState.AddModelError("PassportNumber", "Довжина номеру паспорту має бути 6, або 9 (при викориристанні ID-картки)");
                }
                if (string.IsNullOrEmpty(model.PassportSerial))
                {
                    if (model.PassportNumber.Length != 9)
                    {
                        ModelState.AddModelError("PassportSerial", "Поле необхідне для заповнення (при використанні паспорту)");
                    }
                }
            }
            else
            {
                if (ModelState.ContainsKey("INN"))
                {
                    ModelState["INN"].ValidationState = ModelValidationState.Valid;
                }
                if (ModelState.ContainsKey("PassportSerial"))
                {
                    ModelState["PassportSerial"].ValidationState = ModelValidationState.Valid;
                }
                if (ModelState.ContainsKey("PassportNumber"))
                {
                    ModelState["PassportNumber"].ValidationState = ModelValidationState.Valid;
                }
                if (ModelState.ContainsKey("PassportDate"))
                {
                    ModelState["PassportDate"].ValidationState = ModelValidationState.Valid;
                }
                if (ModelState.ContainsKey("PassportIssueUnit"))
                {
                    ModelState["PassportIssueUnit"].ValidationState = ModelValidationState.Valid;
                }
            }
            if (ModelState.ContainsKey("EconomicClassificationType"))
            {
                ModelState["EconomicClassificationType"].ValidationState = ModelValidationState.Valid;
            }
            if (ModelState.IsValid)
            {
                // ATU
                var newSubjAddress = new SubjectAddress
                {
                    StreetId  = model.StreetId,
                    PostIndex = model.PostIndex,
                    Building  = model.Building,
                };
                if (!_atuAddressService.SaveAddress(newSubjAddress))
                {
                    ModelState.AddModelError("", "Вулиця не знайдена у довіднику");
                }
                else
                {
                    model.AddressId = newSubjAddress.Id;
                }
            }
            if (ModelState.IsValid)
            {
                var appId = await _prlApplicationService.SaveApplication(model);

                return(RedirectToAction("Details", new { id = appId }));
            }
            return(View(model));
        }
コード例 #8
0
        private async Task <IActionResult> Edit <TDetailDTO>(Guid?id, object model) where TDetailDTO : MessageDetailDTO
        {
            var currentModel = (TDetailDTO)model;

            if (id != null)
            {
                currentModel.Id = (Guid)id;
            }

            // Check License for MPD (Only 1)
            if (model.TryGetPropValue("LicenseType", out var licenseType))
            {
                if (!string.IsNullOrEmpty(licenseType as string))
                {
                    var licenseList = await _licenseService.GetActiveLicenses();

                    switch (licenseType)
                    {
                    case "PRL":
                    {
                        if (!licenseList.FirstOrDefault(p => p.type == "PRL").isActive)
                        {
                            ModelState.AddModelError("LicenseType", "У вас немає цієї ліцензії");
                        }
                        currentModel.IsPrlLicense = true; break;
                    }

                    case "IML":
                    {
                        if (!licenseList.FirstOrDefault(p => p.type == "IML").isActive)
                        {
                            ModelState.AddModelError("LicenseType", "У вас немає цієї ліцензії");
                        }
                        currentModel.IsImlLicense = true; break;
                    }

                    case "TRL":
                    {
                        if (!licenseList.FirstOrDefault(p => p.type == "TRL").isActive)
                        {
                            ModelState.AddModelError("LicenseType", "У вас немає цієї ліцензії");
                        }
                        currentModel.IsTrlLicense = true; break;
                    }
                    }
                }
            }

            if (!currentModel.IsPrlLicense && !currentModel.IsImlLicense && !currentModel.IsTrlLicense)
            {
                ModelState.AddModelError("", "Хоча б одна ліцензія повинна бути обрана");
            }

            switch (currentModel)
            {
            case MPDActivitySuspensionMessageDTO mod:
            {
                mod.MpdSelectedId = new Guid(mod.MPDGuidEnum);
                break;
            }

            case MPDActivityRestorationMessageDTO mod:
            {
                mod.MpdSelectedId = new Guid(mod.MPDGuidEnum);
                break;
            }

            case MPDClosingForSomeActivityMessageDTO mod:
            {
                mod.MpdSelectedId = new Guid(mod.MPDGuidEnum);
                break;
            }

            case PharmacyNameChangeMessageDTO mod:
            {
                mod.MpdSelectedId = new Guid(mod.MPDGuidEnum);
                break;
            }

            case PharmacyHeadReplacementMessageDTO mod:
            {
                mod.MpdSelectedId = new Guid(mod.MPDGuidEnum);
                break;
            }

            case MPDLocationRatificationMessageDTO mod:
            {
                mod.MpdSelectedId = new Guid(mod.MPDGuidEnum);
                if (ModelState.IsValid)
                {
                    // ATU
                    var newSubjAddress = new SubjectAddress
                    {
                        StreetId  = mod.StreetId,
                        PostIndex = mod.PostIndex,
                        Building  = mod.Building,
                    };
                    if (!_atuAddressService.SaveAddress(newSubjAddress))
                    {
                        ModelState.AddModelError("", "Вулиця не знайдена у довіднику");
                    }
                    else
                    {
                        mod.AddressBusinessActivityId = newSubjAddress.Id;
                    }
                }
                break;
            }

            case MPDRestorationAfterSomeActivityMessageDTO mod:
            {
                mod.MpdSelectedId = new Guid(mod.MPDGuidEnum);
                break;
            }

            case OrgFopLocationChangeMessageDTO mod:
            {
                if (ModelState.IsValid)
                {
                    // ATU
                    var newSubjAddress = new SubjectAddress
                    {
                        StreetId  = mod.StreetId,
                        PostIndex = mod.PostIndex,
                        Building  = mod.Building,
                    };
                    if (!_atuAddressService.SaveAddress(newSubjAddress))
                    {
                        ModelState.AddModelError("", "Вулиця не знайдена у довіднику");
                    }
                    else
                    {
                        mod.NewLocationId = newSubjAddress.Id;
                    }
                }
                break;
            }
            }


            if (ModelState.IsValid)
            {
                var newId = await _messageService.Save(currentModel);

                return(RedirectToAction("Details", "MessageTypes", new { id = newId }));
            }

            await SetInformLicense(currentModel.MessageType, new Message { Id = currentModel.Id }, true);

            var messageType = typeof(TDetailDTO);
            var viewName    = _messageService.GetViewName(messageType, "Edit");

            return(View(viewName, model));
        }
コード例 #9
0
        public override async Task <IActionResult> Edit(Guid id, TrlAppDetailDTO model)
        {
            if (!model.ListOfTrlActivityType?.Any() ?? true)
            {
                ModelState.AddModelError("ListOfTrlActivityType", "Має бути обрано щонайменьше один вид діяльності");
                var activityTypeList = _service.DataService.GetEntity <EnumRecord>(x => x.EnumType == "TrlActivityType");
                ViewBag.trlActivityTypeList =
                    new MultiSelectList(activityTypeList, nameof(EnumRecord.Id), nameof(EnumRecord.Name));
            }

            if (model.OrgType == OrgType.FOP)
            {
                if (ModelState.ContainsKey("EDRPOU"))
                {
                    ModelState["EDRPOU"].ValidationState = ModelValidationState.Valid;
                }
                if (ModelState.ContainsKey("OrgDirector"))
                {
                    ModelState["OrgDirector"].ValidationState = ModelValidationState.Valid;
                }
                if (model.PassportNumber.Length != 6 && model.PassportNumber.Length != 9)
                {
                    ModelState.AddModelError("PassportNumber", "Довжина номеру паспорту має бути 6, або 9 (при викориристанні ID-картки)");
                }
                if (string.IsNullOrEmpty(model.PassportSerial))
                {
                    if (model.PassportNumber.Length != 9)
                    {
                        ModelState.AddModelError("PassportSerial", "Поле необхідне для заповнення (при використанні паспорту)");
                    }
                }
            }
            else
            {
                if (ModelState.ContainsKey("INN"))
                {
                    ModelState["INN"].ValidationState = ModelValidationState.Valid;
                }
                if (ModelState.ContainsKey("PassportSerial"))
                {
                    ModelState["PassportSerial"].ValidationState = ModelValidationState.Valid;
                }
                if (ModelState.ContainsKey("PassportNumber"))
                {
                    ModelState["PassportNumber"].ValidationState = ModelValidationState.Valid;
                }
                if (ModelState.ContainsKey("PassportDate"))
                {
                    ModelState["PassportDate"].ValidationState = ModelValidationState.Valid;
                }
                if (ModelState.ContainsKey("PassportIssueUnit"))
                {
                    ModelState["PassportIssueUnit"].ValidationState = ModelValidationState.Valid;
                }
            }
            if (ModelState.IsValid)
            {
                // ATU
                var newSubjAddress = new SubjectAddress
                {
                    StreetId  = model.StreetId,
                    PostIndex = model.PostIndex,
                    Building  = model.Building,
                };
                if (!_atuAddressService.SaveAddress(newSubjAddress))
                {
                    ModelState.AddModelError("", "Вулиця не знайдена у довіднику");
                }
                else
                {
                    model.AddressId = newSubjAddress.Id;
                }
            }
            if (ModelState.IsValid)
            {
                var appId = await _service.SaveApplication(model);

                return(RedirectToAction("Details", new { id = appId }));
            }
            return(View(model));
        }
コード例 #10
0
        public override async Task <IActionResult> Edit(Guid id, BranchDetailsDTO model)
        {
            if (id != model.Id)
            {
                return(await Task.Run(() => NotFound()));
            }

            if (string.IsNullOrEmpty(model.AdressEng))
            {
                ModelState.Remove("AdressEng");
            }

            if (ModelState.IsValid)
            {
                // ATU
                var newSubjAddress = new SubjectAddress
                {
                    StreetId  = model.StreetId,
                    PostIndex = model.PostIndex,
                    Building  = model.Building,
                };
                if (!_atuAddressService.SaveAddress(newSubjAddress))
                {
                    ModelState.AddModelError("", "Вулиця не знайдена у довіднику");
                }
                else
                {
                    model.AddressId = newSubjAddress.Id;
                }
            }

            if (model.AppType == "TRL")
            {
                if (!model.TrlActivityType?.Any() ?? true)
                {
                    ModelState.AddModelError("TrlActivityType", "Мае бути обрано щонайменьше один вид діяльності!");
                }
                if (string.IsNullOrEmpty(model.BranchType))
                {
                    ModelState.AddModelError("BranchType", "Поле необхідне для заповнення!");
                }
                if (model.BranchType == "PharmacyItem" && model.PharmacyId == null)
                {
                    ModelState.AddModelError("PharmacyId", "Оберіть аптеку!");
                }
            }

            if (ModelState.IsValid)
            {
                try
                {
                    await _branchService.Save(model);
                }
                catch (Exception)
                {
                    return(await Task.Run(() => NotFound()));
                }

                return(Json(new { status = "success", tab = "#branch" }));
            }

            return(Json(new { status = "false", errors = ModelState.Values.Where(i => i.Errors.Count > 0) }));
        }