Пример #1
0
        public void PostPassport_ShoulAddPassport()
        {
            var passportsTestData = new List <EmployeePassport>()
            {
                new EmployeePassport {
                    Id = 1, EmployeeId = 2
                },
                new EmployeePassport {
                    Id = 2, Deleted = true, EmployeeId = 2
                },
                new EmployeePassport {
                    Id = 3, EmployeeId = 3
                }
            };
            var passports = MockHelper.MockDbSet(passportsTestData);

            passports.Setup(d => d.Find(It.IsAny <object>())).Returns <object[]>((keyValues) => { return(passports.Object.SingleOrDefault(product => product.Id == (int)keyValues.Single())); });
            passports.Setup(d => d.Add(It.IsAny <EmployeePassport>())).Returns <EmployeePassport>((contact) =>
            {
                passportsTestData.Add(contact);
                passports = MockHelper.MockDbSet(passportsTestData);
                return(contact);
            });

            var dbContext = new Mock <IAppDbContext>();

            dbContext.Setup(m => m.EmployeePassports).Returns(passports.Object);
            dbContext.Setup(d => d.Set <EmployeePassport>()).Returns(passports.Object);

            dbContext.Setup(d => d.ExecuteStoredProcedure <int>(It.IsAny <string>(), It.IsAny <object[]>()))
            .Returns <string, object[]>((query, parameters) =>
            {
                List <int> list = new List <int>();
                if (query.Contains("NewTableId"))
                {
                    int i = passports.Object.Max(d => d.Id) + 1;
                    list.Add(i);
                }
                else
                {
                    list.Add(0);
                }
                return(list);
            });

            var factory = new Mock <IDbContextFactory>();

            factory.Setup(m => m.CreateDbContext()).Returns(dbContext.Object);
            EmployeePassport passport = new EmployeePassport {
                Id = 0, EmployeeId = 3, Address = new Address {
                    Apartment = "3", BuildingNumber = 45
                }
            };
            var controller = new EmployeePassportsController(factory.Object);
            var result     = controller.PostEmployeePassport(passport.ToDTO()) as CreatedAtRouteNegotiatedContentResult <EmployeePassportDTO>;

            Assert.IsNotNull(result);
            Assert.AreEqual(4, result.Content.Id);
            Assert.AreEqual(3, result.Content.EmployeeId);
        }
Пример #2
0
 public IHttpActionResult DeleteEmployeePassport(int id)
 {
     try
     {
         UnitOfWork       unitOfWork = new UnitOfWork(factory);
         EmployeePassport passport   = unitOfWork.EmployeePassportsRepository
                                       .Get(d => d.EmployeeId == id,
                                            includeProperties: "Address, Address.Country,Address.AddressLocality,Address.AddressPlace,Address.AddressRegion,Address.AddressVillage").FirstOrDefault();
         passport.Deleted = true;
         unitOfWork.EmployeePassportsRepository.Update(passport);
         unitOfWork.Save();
         EmployeePassportDTO dto = passport.ToDTO();
         return(Ok(dto));
     }
     catch (NotFoundException nfe)
     {
         return(NotFound());
     }
     catch (ConflictException ce)
     {
         return(Conflict());
     }
     catch (Exception e)
     {
         return(BadRequest(e.Message));
     }
 }
Пример #3
0
        public IHttpActionResult GetEmployeePassport(int id)
        {
            try
            {
                UnitOfWork       unitOfWork = new UnitOfWork(factory);
                EmployeePassport p          = unitOfWork.EmployeePassportsRepository
                                              .Get(d => d.Id == id,
                                                   includeProperties: "Address,Address.Country,Address.AddressLocality,Address.AddressPlace,Address.AddressRegion,Address.AddressVillage")
                                              .FirstOrDefault();
                EmployeePassportDTO employeePassport = p.ToDTO();

                return(Ok(employeePassport));
            }
            catch (NotFoundException nfe)
            {
                return(NotFound());
            }
            catch (ConflictException ce)
            {
                return(Conflict());
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
Пример #4
0
 public IHttpActionResult PostEmployeePassport(EmployeePassportDTO employeePassport)
 {
     if (employeePassport == null)
     {
         return(BadRequest(ModelState));
     }
     try
     {
         EmployeePassport passport   = employeePassport.FromDTO();
         UnitOfWork       unitOfWork = new UnitOfWork(factory);
         passport.Address.Id = passport.Address.NewId(unitOfWork);
         passport.AddressId  = passport.Address.Id;
         passport.Id         = passport.NewId(unitOfWork);
         unitOfWork.EmployeePassportsRepository.Insert(passport);
         unitOfWork.Save();
         EmployeePassportDTO dto = unitOfWork.EmployeePassportsRepository
                                   .Get(d => d.Id == passport.Id,
                                        includeProperties: "Address,Address.Country,Address.AddressLocality,Address.AddressPlace,Address.AddressRegion,Address.AddressVillage").FirstOrDefault().ToDTO();
         return(CreatedAtRoute("GetEmployeePassport", new { id = dto.Id }, dto));
     }
     catch (NotFoundException nfe)
     {
         return(NotFound());
     }
     catch (ConflictException ce)
     {
         return(Conflict());
     }
     catch (Exception e)
     {
         return(BadRequest(e.Message));
     }
 }
Пример #5
0
 public IHttpActionResult PutEmployeePassport(int id, EmployeePassportDTO employeePassport)
 {
     if (employeePassport == null || !ModelState.IsValid)
     {
         return(BadRequest(ModelState));
     }
     if (id != employeePassport.Id)
     {
         return(BadRequest());
     }
     try
     {
         EmployeePassport passport   = employeePassport.FromDTO();
         UnitOfWork       unitOfWork = new UnitOfWork(factory);
         unitOfWork.EmployeePassportsRepository.Update(passport);
         unitOfWork.Save();
         EmployeePassportDTO dto = unitOfWork.EmployeePassportsRepository
                                   .Get(d => d.Id == id,
                                        includeProperties: "Address,Address.Country,Address.AddressLocality,Address.AddressPlace,Address.AddressRegion,Address.AddressVillage").FirstOrDefault().ToDTO();
         return(Ok(dto));
     }
     catch (NotFoundException nfe)
     {
         return(NotFound());
     }
     catch (ConflictException ce)
     {
         return(Conflict());
     }
     catch (Exception e)
     {
         return(BadRequest(e.Message));
     }
 }
Пример #6
0
        public int Update(EmpPassportItem model)
        {
            Mapper.CreateMap <EmpPassportItem, EmployeePassport>();
            EmployeePassport objPass = DbContext.EmployeePassports.SingleOrDefault(m => m.Id == model.Id);

            objPass = Mapper.Map(model, objPass);
            return(DbContext.SaveChanges());
        }
Пример #7
0
        public EmpPassportItem GetById(int id)
        {
            Mapper.CreateMap <EmployeePassport, EmpPassportItem>();
            EmployeePassport objPassport = DbContext.EmployeePassports.SingleOrDefault(m => m.Id == id);
            EmpPassportItem  objPassItem = Mapper.Map <EmpPassportItem>(objPassport);

            return(objPassItem);
        }
Пример #8
0
 public int Insert(EmpPassportItem model)
 {
     try
     {
         Mapper.CreateMap <EmpPassportItem, EmployeePassport>();
         EmployeePassport objEmpPassport = Mapper.Map <EmployeePassport>(model);
         DbContext.EmployeePassports.Add(objEmpPassport);
         return(DbContext.SaveChanges());
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #9
0
        public void DeletePassport_ShouldDeleteAndReturnOk()
        {
            var passportsTestData = new List <EmployeePassport>()
            {
                new EmployeePassport {
                    Id = 1, EmployeeId = 2
                },
                new EmployeePassport {
                    Id = 2, Deleted = true, EmployeeId = 2
                },
                new EmployeePassport {
                    Id = 3, EmployeeId = 3
                }
            };
            var passports = MockHelper.MockDbSet(passportsTestData);

            passports.Setup(d => d.Find(It.IsAny <object>())).Returns <object[]>((keyValues) => { return(passports.Object.SingleOrDefault(product => product.Id == (int)keyValues.Single())); });

            var dbContext = new Mock <IAppDbContext>();

            dbContext.Setup(m => m.EmployeePassports).Returns(passports.Object);
            dbContext.Setup(d => d.Set <EmployeePassport>()).Returns(passports.Object);


            var factory = new Mock <IDbContextFactory>();

            factory.Setup(m => m.CreateDbContext()).Returns(dbContext.Object);

            EmployeePassport passport = new EmployeePassport {
                Id = 3, EmployeeId = 3
            };
            var controller = new EmployeePassportsController(factory.Object);
            var result     = controller.DeleteEmployeePassport(3) as OkNegotiatedContentResult <EmployeePassportDTO>;

            Assert.IsNotNull(result);
            Assert.AreEqual(3, result.Content.Id);
            Assert.AreEqual(3, result.Content.EmployeeId);
        }
Пример #10
0
    /// <summary>
    /// заполнение базы данных пользователей
    /// </summary>
    public static void GenerateUserRepository(ACSContext Context)
    {
        // var location = System.Reflection.Assembly.GetExecutingAssembly().Location;

        //отфильтровали по актуальности
        //сгрупировали по кодфизлица
        //выбрали из каждой группы запись с самой новой датой принятия
        //т.к там самые свежие паспортные данные и фамилии
        //отсортировали по дате принятия и фамилии
        var query = from db in DataLoader1C.Data.Сотрудники
                    where db.Актуальность == "Да"
                    group db by db.КодФизЛицо into @group
                    from dataEmpl in @group
                    where XMLDataTypeConverter.GetDateTime(dataEmpl.Принят)
                    == @group.Max(dataEmpl => XMLDataTypeConverter.GetDateTime(dataEmpl.Принят))
                    orderby XMLDataTypeConverter.GetDateTime(dataEmpl.Принят), dataEmpl.ФИО
        select dataEmpl;

        //{
        //    Email = "*****@*****.**",
        //        UserName = "******",
        //        Password = "******",
        //        Name = "Семен Семенович Горбунков",
        //        Address = "ул. Спортивная, д.30, кв.75",
        //        Role = "admin",

        foreach (var dataUser in query)
        {
            string[] DataFullNameEmp = dataUser.ФИО.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

            DataUserInActiveDirectory dataUserAD = new DataUserInActiveDirectory();

            dataUserAD.SearchData(DataFullNameEmp[0], DataFullNameEmp[1]);

            Console.WriteLine(dataUserAD.SID.ToString().Length.ToString());
            var newDataUser = new Employee()
            {
                LName = DataFullNameEmp[0],
                FName = DataFullNameEmp[1],
                MName = DataFullNameEmp[2],
                //FullName = dataUser.ФИО,
                //ShortName = String.Format("{0} {1}.{2}.", DataFullNameEmp[0], DataFullNameEmp[1].FirstOrDefault(), DataFullNameEmp[2].FirstOrDefault()),
                SID    = dataUserAD.SID,
                Guid1C = Guid.Parse(dataUser.КодФизЛицо),

                Birthday = XMLDataTypeConverter.GetDateTime(dataUser.ДатаРождения),
                Email    = dataUserAD.Email,
                //PersonnelNumber = Convert.ToInt32(dataUser.ТабельныйНомер),
                PersonnelNumber = dataUser.ТабельныйНомер,

                s_AuthorID = 1,
                s_EditorID = 1,
            };


            EmployeePassport Passport = new EmployeePassport()
            {
                //паспортные данные
                DateOfIssue = XMLDataTypeConverter.GetDateTime(dataUser.ДокументДатаВыдачи),
                IssuedBy    = dataUser.ДокументКемВыдан,
                Number      = dataUser.ДокументНомер.ToString(),
                Series      = dataUser.ДокументСерия,
                UnitCode    = dataUser.ДокументКодПодразделения,
                Employee    = newDataUser
            };

            //добавляя паспартные данные, автоматически добавляются и пользовательские
            Context.EmployeesPassports.Add(Passport);

            Context.SaveChanges();
        }
    }