public void UpdateCompany(int id, string name, string phone, string email, List <Address> addresses, string description, string pic)
        {
            CompanyOutput oldCompanyOut = GetCompanyById(id);
            Company       oldCompany    = db.Companies.Find(id);
            Company       company       = new Company {
                Id = id, Name = name, Phone = phone, Email = email, Description = description, Pic = pic, PasswordHash = oldCompanyOut.PasswordHash, Role = oldCompanyOut.Role
            };

            //List<string> addresses = db.Company_to_address.Where(item => item.Company_id == id).Select(item => item.Address).ToList();
            db.Entry(oldCompany).State = EntityState.Detached;
            db.Companies.Update(company);
            db.SaveChanges();
            foreach (Address item in addresses)
            {
                if (item.Id != 0)
                {
                    db.Company_to_address.Update(new Company_to_address {
                        Id = item.Id, Address = item.Value, Company_id = id
                    });
                }
                else
                {
                    db.Company_to_address.Add(new Company_to_address {
                        Company_id = id, Address = item.Value
                    });
                }
            }
            db.SaveChanges();
        }
 /// <summary>
 /// Возвращает определенное количество объектов Компаний.
 /// </summary>
 /// <param name="from">Индекс начала range</param>
 /// <param name="to">Индекс конца range</param>
 /// <returns>Коллекция объектов Company</returns>
 public List <CompanyOutput> GetCompaniesRange(int from, int to)
 {
     from--;
     to--;
     try
     {
         List <Company>       companies      = db.Companies.ToList().GetRange(from, to - from);
         List <CompanyOutput> companyOutputs = new List <CompanyOutput> {
         };
         foreach (Company company in companies)
         {
             CompanyOutput companyOutput = new CompanyOutput
             {
                 Id           = company.Id,
                 Name         = company.Name,
                 Email        = company.Email,
                 Phone        = company.Phone,
                 Description  = company.Description,
                 Pic          = company.Pic,
                 PasswordHash = company.PasswordHash,
                 Role         = company.Role,
                 Address      = db.Company_to_address.Where(item => item.Company_id == company.Id).Select(item => item.Address).ToArray()
             };
             companyOutputs.Add(companyOutput);
         }
         return(companyOutputs);
     }
     catch (Exception)
     {
         return(new List <CompanyOutput> {
         });
     }
 }
Exemple #3
0
        public async Task <IActionResult> UpdateCompany(string name, string phone, string email, string address, string description, IFormFile pic)
        {
            CompanyOutput currentCompany = dbService.GetCompanyByEmail(User.Identity.Name);

            if (dbService.GetCompanyByEmail(email) is null || (currentCompany.Email.Equals(email)))
            {
                string filePath = String.Empty;
                if (!(pic is null))
                {
                    filePath = "/Files/" + Guid.NewGuid() + "." + pic.FileName.Split('.')[1];
                    using (var fileStream = new FileStream(appEnvironment.WebRootPath + filePath, FileMode.Create))
                    {
                        await pic.CopyToAsync(fileStream);
                    }
                }
        public CompanyOutput GetCompanyById(int id)
        {
            Company       company       = db.Companies.Find(id);
            List <string> addresses     = db.Company_to_address.Where(item => item.Company_id == company.Id).Select(item => item.Address).ToList();
            CompanyOutput companyOutput = new CompanyOutput
            {
                Id           = company.Id,
                Name         = company.Name,
                Email        = company.Email,
                Phone        = company.Phone,
                Description  = company.Description,
                Pic          = company.Pic,
                PasswordHash = company.PasswordHash,
                Role         = company.Role,
                Address      = addresses.ToArray()
            };

            return(companyOutput);
        }
        const int SaltSize = 128 / 8;                                 // 128 bits
        public static ClaimsIdentity GetIdentity(string username, string password, DbService db)
        {
            CompanyOutput company = db.GetCompanyByEmail(username);

            if (company != null && VerifyHashedPassword(Convert.FromBase64String(company.PasswordHash), password))
            {
                var claims = new List <Claim>
                {
                    new Claim(ClaimsIdentity.DefaultNameClaimType, company.Email),
                    new Claim(ClaimsIdentity.DefaultRoleClaimType, company.Role)
                };
                ClaimsIdentity claimsIdentity =
                    new ClaimsIdentity(claims, "Token", ClaimsIdentity.DefaultNameClaimType,
                                       ClaimsIdentity.DefaultRoleClaimType);
                return(claimsIdentity);
            }

            // если пользователя не найдено
            return(null);
        }
Exemple #6
0
        public void AddCompanyReturnCreatedCompanyTest()
        {
            //Arrange
            Domain.Company.Company cm = new Domain.Company.Company();
            Domain.Company.Company c  = new Domain.Company.Company(1, "Razón Social 1", "CUIT", "Dirección", "Teléfono", null);
            CompanyOutput          co = new CompanyOutput()
            {
                CompanyID = 1, BusinessName = "Razón Social 1", Address = "Dirección", PhoneNumber = "Teléfono", Logo = null
            };
            var mockCompanyRepository = new Mock <ICompanyRepository>();
            var mockMapper            = new Mock <IMapper>();

            mockCompanyRepository.Setup(e => e.Add(It.IsAny <Domain.Company.Company>())).Returns(c);
            mockMapper.Setup(e => e.Map <Domain.Company.Company, CompanyOutput>(It.IsAny <Domain.Company.Company>())).Returns(co);

            var useCase = new AddCompanyUseCase(mockCompanyRepository.Object, mockMapper.Object);

            //Act
            var res = useCase.Execute(cm);

            //Assert
            Assert.IsType <CompanyOutput>(res);
        }
        public void GetOneCompanyReturnsSuccessfullyTest()
        {
            //Arrange
            Domain.Company.Company c  = new Domain.Company.Company(1, "Company 1", "CUIT", "Dirección", "Teléfono", null);
            CompanyOutput          cO = new CompanyOutput()
            {
                CompanyID = 1, BusinessName = "Company 1", CUIT = "CUIT", Address = "Dirección", PhoneNumber = "Teléfono", Logo = null
            };

            var mockCompanyRepository = new Mock <ICompanyRepository>();
            var mockMapper            = new Mock <IMapper>();

            mockCompanyRepository.Setup(e => e.GetOne(It.IsAny <int>())).Returns(c);
            mockMapper.Setup(e => e.Map <Domain.Company.Company, CompanyOutput>(It.IsAny <Domain.Company.Company>())).Returns(cO);

            var useCase = new GetOneCompanyUseCase(mockCompanyRepository.Object, mockMapper.Object);

            //Act
            var res = useCase.Execute(1);

            //Assert
            Assert.IsType <CompanyOutput>(res);
        }
        public List <CompanyOutput> GetCompanies()
        {
            List <Company>       companies      = db.Companies.ToList();
            List <CompanyOutput> companyOutputs = new List <CompanyOutput> {
            };

            foreach (Company company in companies)
            {
                CompanyOutput companyOutput = new CompanyOutput
                {
                    Id           = company.Id,
                    Name         = company.Name,
                    Email        = company.Email,
                    Phone        = company.Phone,
                    Description  = company.Description,
                    Pic          = company.Pic,
                    PasswordHash = company.PasswordHash,
                    Role         = company.Role,
                    Address      = db.Company_to_address.Where(item => item.Company_id == company.Id).Select(item => item.Address).ToArray()
                };
                companyOutputs.Add(companyOutput);
            }
            return(companyOutputs);
        }
        public List <string> GetCompanyAddressesByEmail(string email)
        {
            CompanyOutput company = GetCompanyByEmail(email);

            return(company.Address.ToList());
        }