Ejemplo n.º 1
0
        /// <summary>
        /// Попълване на елемент за чек бокса
        /// </summary>
        /// <param name="law"></param>
        /// <param name="courtDepartmentLawUnits"></param>
        /// <returns></returns>
        private CheckListVM FillCheckListVM(LawUnit law, IList <CourtDepartmentLawUnit> courtDepartmentLawUnits)
        {
            CheckListVM checkListVM = new CheckListVM
            {
                Value   = law.Id.ToString(),
                Label   = law.FullName,
                Checked = courtDepartmentLawUnits.Any(x => x.LawUnitId == law.Id && (x.DateFrom <= DateTime.Now && ((x.DateTo != null) ? x.DateTo >= DateTime.Now : true)))
            };

            return(checkListVM);
        }
Ejemplo n.º 2
0
        public IActionResult Add(int lawUnitType)
        {
            SetBreadcrums(lawUnitType, 0);
            var model = new LawUnit()
            {
                LawUnitTypeId = lawUnitType,
                DateFrom      = DateTime.Now
            };

            return(View(nameof(Edit), model));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Валидация на лице преди запис
        /// </summary>
        /// <param name="model"></param>
        void ValidateModel(LawUnit model)
        {
            if (!NomenclatureConstants.LawUnitTypes.NoApointmentPersons.Contains(model.LawUnitTypeId))
            {
                if (string.IsNullOrEmpty(model.Uic))
                {
                    ModelState.AddModelError(nameof(model.Uic), "Въведете ЕГН");
                }
            }
            else
            {
                if (string.IsNullOrEmpty(model.Uic) && string.IsNullOrEmpty(model.Code))
                {
                    ModelState.AddModelError(nameof(model.Code), "Въведете 'Код' или 'ЕГН'");
                }
            }

            if (string.IsNullOrEmpty(model.FirstName))
            {
                ModelState.AddModelError(nameof(model.FirstName), "Въведете поне едно име");
            }

            if (model.DateTo.HasValue && model.DateTo.Value < DateTime.Now.Date)
            {
                ModelState.AddModelError(nameof(model.DateTo), "Не можете да деактивирате лице със задна дата.");
            }

            var valMessage = commonService.LawUnit_Validate(model);

            if (!string.IsNullOrEmpty(valMessage))
            {
                ModelState.AddModelError(nameof(model.Code), valMessage);
            }

            //if (!string.IsNullOrEmpty(model.Uic))
            //{
            //    if (commonService.IsExistLawUnit_ByUicUicType(model.Uic, ((model.Id < 1) ? null : (int?)model.Id)))
            //        ModelState.AddModelError(nameof(model.Uic), "Има лице с този идентификатор.");
            //}
        }
Ejemplo n.º 4
0
        public IActionResult Edit(LawUnit model)
        {
            SetBreadcrums(model.LawUnitTypeId, model.Id);
            ValidateModel(model);
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var currentId = model.Id;

            if (commonService.LawUnit_SaveData(model))
            {
                this.SaveLogOperation(currentId == 0, model.Id);
                SetSuccessMessage(MessageConstant.Values.SaveOK);
                return(RedirectToAction(nameof(Edit), new { id = model.Id }));
            }
            else
            {
                SetErrorMessage(MessageConstant.Values.SaveFailed);
                return(View(model));
            }
        }
Ejemplo n.º 5
0
        private async Task <bool> migrate_CourtLawUnit(MigrationData item)
        {
            var data = item.Data.Split('|');

            try
            {
                int    lawUnitTypeId = int.Parse(item.DataType.Substring(8));
                string email         = string.Empty;

                var lawUnit = new LawUnit()
                {
                    LawUnitTypeId = lawUnitTypeId,
                    UicTypeId     = NomenclatureConstants.UicTypes.EGN,
                    Uic           = data[1],
                    FirstName     = data[2]?.Trim(),
                    MiddleName    = data[3]?.Trim(),
                    FamilyName    = data[4]?.Trim(),
                    Family2Name   = data[5]?.Trim(),
                    DateFrom      = DefaultDateFrom,
                    DateWrt       = DateTime.Now
                };

                lawUnit.FullName = lawUnit.MakeFullName();

                if (!string.IsNullOrEmpty(lawUnit.Uic))
                {
                    lawUnit.Person.CopyFrom(lawUnit);
                }
                else
                {
                    lawUnit.Person = null;
                }
                var lawUnitPeriods = new List <CourtLawUnit>();
                var appointPeriod  = new CourtLawUnit();
                if (!NomenclatureConstants.LawUnitTypes.NoApointmentPersons.Contains(lawUnitTypeId))
                {
                    appointPeriod.CourtId      = item.CourtId;
                    appointPeriod.DateFrom     = DefaultDateFrom;
                    appointPeriod.PeriodTypeId = NomenclatureConstants.PeriodTypes.Appoint;

                    lawUnitPeriods.Add(appointPeriod);
                }

                switch (lawUnitTypeId)
                {
                case NomenclatureConstants.LawUnitTypes.Judge:
                    email = data[6].Trim();
                    try
                    {
                        if (!string.IsNullOrEmpty(data[7]))
                        {
                            var moveToCourt  = int.Parse(data[7]);
                            var moveFromDate = data[8];


                            var movePeriod = new CourtLawUnit()
                            {
                                CourtId      = moveToCourt,
                                DateFrom     = moveFromDate.StrToDateFormat("dd.MM.yyyy"),
                                PeriodTypeId = NomenclatureConstants.PeriodTypes.Move
                            };

                            if (moveToCourt < 0)
                            {
                                //Ако е командирован в текущия съд, се разменят двата вида период
                                appointPeriod.PeriodTypeId = NomenclatureConstants.PeriodTypes.Move;
                                appointPeriod.DateFrom     = movePeriod.DateFrom;
                                movePeriod.CourtId         = Math.Abs(movePeriod.CourtId);
                                movePeriod.PeriodTypeId    = NomenclatureConstants.PeriodTypes.Appoint;
                                movePeriod.DateFrom        = DefaultDateFrom;
                            }


                            lawUnitPeriods.Add(movePeriod);
                        }
                    }
                    catch { }
                    break;

                case NomenclatureConstants.LawUnitTypes.MessageDeliverer:
                    email = data[6].Trim();
                    break;

                case NomenclatureConstants.LawUnitTypes.OtherEmployee:
                    email = data[6].Trim();
                    lawUnit.Department = data[7];
                    break;

                case NomenclatureConstants.LawUnitTypes.Jury:
                    //Кой съд и специалност ако има
                    lawUnit.Department = data[6] + ":" + (data[7] ?? "");
                    break;

                case NomenclatureConstants.LawUnitTypes.Prosecutor:
                    //Кой съд и специалност ако има
                    lawUnit.Code       = data[6] ?? "";
                    lawUnit.Department = data[7] ?? "";

                    if (string.IsNullOrEmpty(lawUnit.Code))
                    {
                        item.Message = $"{lawUnit.FullName} няма код";
                        return(false);
                    }
                    if (repo.AllReadonly <LawUnit>().Where(x => x.Code == lawUnit.Code && x.LawUnitTypeId == lawUnitTypeId).Any())
                    {
                        item.Message = $"{lawUnit.Code} {lawUnit.FullName} вече съществува";
                        return(false);
                    }
                    break;

                default:
                    break;
                }
                lawUnit.Courts = lawUnitPeriods;

                if (!string.IsNullOrEmpty(lawUnit.Uic))
                {
                    var savedLU = repo.AllReadonly <LawUnit>()
                                  .Where(x => x.Uic == lawUnit.Uic && x.UicTypeId == lawUnit.UicTypeId)
                                  .FirstOrDefault();

                    if (savedLU != null)
                    {
                        item.Message = $"{savedLU.Uic} {savedLU.FullName} вече съществува";
                        return(false);
                    }
                }

                //Лицата трябва да имат уникално ЕГН и уникален email
                if (NomenclatureConstants.LawUnitTypes.EissUserTypes.Contains(lawUnitTypeId))
                {
                    if (string.IsNullOrEmpty(lawUnit.Uic))
                    {
                        item.Message = "Лицето няма ЕГН";
                        return(false);
                    }


                    long egn;
                    if (!long.TryParse(lawUnit.Uic, out egn))
                    {
                        item.Message = "Невалидно ЕГН";
                        return(false);
                    }


                    if (string.IsNullOrEmpty(email))
                    {
                        item.Message = "Лицето няма електронна поща";
                        return(false);
                    }

                    if (repo.AllReadonly <ApplicationUser>().Where(x => x.NormalizedEmail == email.ToUpper()).Any())
                    {
                        item.Message = "Съществуваща електронна поща";
                        return(false);
                    }
                }



                repo.Add(lawUnit);
                repo.SaveChanges();

                //Ако има електронна поща се създава и потребител
                if (!string.IsNullOrEmpty(email))
                {
                    var user = new ApplicationUser
                    {
                        UserName  = email,
                        Email     = email,
                        LawUnitId = lawUnit.Id,
                        CourtId   = item.CourtId,
                        WorkNotificationToMail = true,
                        IsActive = true
                    };

                    IdentityResult res = null;

                    res = await userManager.CreateAsync(user).ConfigureAwait(false);

                    if (res.Succeeded)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(true);
                }
            }
            catch (Exception ex)
            {
                item.Message = ex.Message;
                return(false);
            }
        }