Пример #1
0
        public void UpdateAddress(Model.Profile.Company.Entity.Company company)
        {
            using (var transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew))
            {
                try
                {
                    StandartPersistence standartPersistence =
                        new StandartPersistence(this.Connection);

                    if (company.Address != null)
                    {
                        standartPersistence.Update <Address>(company.Address);
                    }

                    transactionScope.Complete();
                }
                catch (SqlException e)
                {
                    throw e;
                }
                catch (TransactionException e)
                {
                    throw e;
                }
            }
        }
Пример #2
0
        public Model.Profile.Company.Entity.Company Validate(string cnpj)
        {
            System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
            var uri = string.Format("https://www.receitaws.com.br/v1/cnpj/{0}", cnpj);

            System.Net.Http.HttpResponseMessage result = client.GetAsync(uri).Result;
            string json            = result.Content.ReadAsStringAsync().Result;
            var    receitawsDomine = Newtonsoft.Json.JsonConvert.DeserializeObject <ReceitawsDomine>(json);

            var company = new Model.Profile.Company.Entity.Company();

            company.ReceitawsDomine = new ReceitawsDomine();
            company.ReceitawsDomine = receitawsDomine;
            if (company.ReceitawsDomine.cnpj != null)
            {
                if (company.ReceitawsDomine.qsa != null && company.ReceitawsDomine.qsa.Count() > 0)
                {
                    company.CompanyPartners = new List <CompanyPartner>();

                    foreach (var socio in company.ReceitawsDomine.qsa)
                    {
                        company.CompanyPartners.Add(new CompanyPartner()
                        {
                            FirstName = socio.nome
                        });
                    }
                }

                company.Name = receitawsDomine.nome;
                company.CNPJ = receitawsDomine.cnpj.Replace("/", "").Replace(".", "").Replace("-", "");
            }
            return(company);
        }
Пример #3
0
 public ActionResult <ObjectResult> UpdateAddress([FromBody] Model.Profile.Company.Entity.Company company)
 {
     try
     {
         CompanyService companyService = new CompanyService(Startup.BeePlaceDataBaseConnectionString);
         companyService.UpdateAddress(company);
         return(StatusCode((int)HttpStatusCode.OK, company));
     }
     catch (Exception e)
     {
         return(StatusCode((int)HttpStatusCode.InternalServerError, e.Message));
     }
 }
Пример #4
0
        public void RemoveCompanyAssociation(Model.Profile.Company.Entity.Company company,
                                             Model.Expertise.Entity.Expertise expertise)
        {
            try
            {
                StandartPersistence standartPersistence = new StandartPersistence(this.Connection);

                standartPersistence.Execute(CommandType.Text,
                                            "DELETE CompanyExpertise WHERE IdCompany = @IdCompany AND IdExpertise = @IdExpertise",
                                            new { IdCompany = company.Id, IdExpertise = expertise.IdExpertise });
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Пример #5
0
 public ActionResult <ObjectResult> PartnersByCompany(int idCompany)
 {
     try
     {
         CompanyService companyService = new CompanyService(Startup.BeePlaceDataBaseConnectionString);
         Model.Profile.Company.Entity.Company company
             = new Model.Profile.Company.Entity.Company()
             {
             Id = idCompany
             };
         var partners = new List <CompanyPartner>();
         partners = companyService.ListPartnersByCompany(company);
         return(StatusCode((int)HttpStatusCode.OK, partners));
     }
     catch (Exception e)
     {
         return(StatusCode((int)HttpStatusCode.InternalServerError, e.Message));
     }
 }
Пример #6
0
        public List <CompanyPartner> ListPartnersByCompany(Model.Profile.Company.Entity.Company company)
        {
            try
            {
                StandartPersistence standartPersistence =
                    new StandartPersistence(this.Connection);

                var partners = standartPersistence.GetEntities <CompanyPartner>(CommandType.Text,
                                                                                "SELECT * FROM CompanyPartner WHERE IdCompany = @IdCompany",
                                                                                new { IdCompany = company.Id }).ToList();


                return(partners);
            }
            catch (TransactionException e)
            {
                throw e;
            }
        }
Пример #7
0
 public ActionResult <ObjectResult> RemoveCompanyAssociation([FromBody] CompanyAssociation companyAssociation)
 {
     try
     {
         ExpertiseService expertiseService = new ExpertiseService(Startup.BeePlaceDataBaseConnectionString);
         var company = new Model.Profile.Company.Entity.Company()
         {
             Id = companyAssociation.IdCompany
         };
         var expertise = new Model.Expertise.Entity.Expertise()
         {
             IdExpertise = companyAssociation.IdExpertise
         };
         expertiseService.RemoveCompanyAssociation(company, expertise);
         return(StatusCode((int)HttpStatusCode.OK, companyAssociation));
     }
     catch (Exception e)
     {
         return(StatusCode((int)HttpStatusCode.InternalServerError, e.Message));
     }
 }
Пример #8
0
        public ActionResult <ObjectResult> Login([FromBody] CompanyPartner companyPartner)
        {
            try
            {
                CompanyService companyService = new CompanyService(Startup.BeePlaceDataBaseConnectionString);
                Model.Profile.Company.Entity.Company company = new Model.Profile.Company.Entity.Company();
                company = companyService.LoginCompany(companyPartner);

                if (company.CompanyPartners != null && company.CompanyPartners.Count > 0)
                {
                    return(StatusCode((int)HttpStatusCode.OK, company));
                }
                else
                {
                    return(StatusCode((int)HttpStatusCode.Unauthorized));
                }
            }
            catch (Exception e)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, e.Message));
            }
        }
Пример #9
0
        public ActionResult <ObjectResult> Validate(string cnpj)
        {
            try
            {
                CompanyService companyService = new CompanyService(Startup.BeePlaceDataBaseConnectionString);
                Model.Profile.Company.Entity.Company company = new Model.Profile.Company.Entity.Company();
                company = companyService.Validate(cnpj);

                if (company.CNPJ != null)
                {
                    return(StatusCode((int)HttpStatusCode.OK, company));
                }
                else
                {
                    return(StatusCode((int)HttpStatusCode.NotFound));
                }
            }
            catch (Exception e)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, e.Message));
            }
        }
Пример #10
0
        public List <Model.Expertise.Entity.Expertise> ListByCompany(Model.Profile.Company.Entity.Company company)
        {
            try
            {
                StandartPersistence standartPersistence = new StandartPersistence(this.Connection);
                var expertises = new List <Model.Expertise.Entity.Expertise>();

                StringBuilder select = new StringBuilder();
                select.Append("SELECT e.[IdExpertise], e.[Name], e.[Description], e.[Price], e.[IdMCC], e.[IdFather], e.[Icon], e.[IdCnae], ce.[MinCost] FROM Expertise e ");
                select.Append("INNER JOIN [dbo].[CompanyExpertise] ce ON e.IdExpertise = ce.IdExpertise ");
                select.Append("WHERE ce.IdCompany = @IdCompany");

                expertises =
                    standartPersistence.GetEntities <Model.Expertise.Entity.Expertise>(CommandType.Text, select.ToString(),
                                                                                       new { IdCompany = company.Id }).ToList();

                return(expertises);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Пример #11
0
        public void InsertCompany(Model.Profile.Company.Entity.Company company)
        {
            using (var transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew))
            {
                try
                {
                    StandartPersistence standartPersistence =
                        new StandartPersistence(this.Connection);

                    company.DateUpdated = DateTime.Now;
                    company.DateCreated = DateTime.Now;

                    standartPersistence.Insert <Model.Profile.Company.Entity.Company>(company);

                    if (company.Address != null)
                    {
                        company.Address.DateUpdated = DateTime.Now;
                        company.Address.DateCreated = DateTime.Now;

                        standartPersistence.Insert <Address>(company.Address);

                        standartPersistence.Execute(CommandType.Text,
                                                    "INSERT INTO CompanyAddress Values (@IdCompany, @IdAddress)",
                                                    new
                        {
                            IdCompany = company.Id,
                            IdAddress = company.Address.Id
                        });
                    }

                    if (company.Expertises != null && company.Expertises.Count > 0)
                    {
                        for (int i = 0; i < company.Expertises.Count; i++)
                        {
                            standartPersistence.Execute(CommandType.Text,
                                                        "INSERT INTO CompanyExpertise Values (@IdCompany, @IdExpertise)",
                                                        new
                            {
                                IdCompany   = company.Id,
                                IdExpertise = company.Expertises[i].IdExpertise,
                                MinCost     = company.Expertises[i].CompanyMinCost
                            });
                        }
                    }

                    if (company.CompanyPartners != null && company.CompanyPartners.Count > 0)
                    {
                        for (int i = 0; i < company.CompanyPartners.Count; i++)
                        {
                            company.CompanyPartners[i].DateUpdated = DateTime.Now;
                            company.CompanyPartners[i].DateCreated = DateTime.Now;

                            company.CompanyPartners[i].IdCompany = company.Id;
                            company.CompanyPartners[i].Password  = CryptHelper.Encrypt(company.CompanyPartners[i].Password);
                            standartPersistence.Insert(company.CompanyPartners[i]);
                            if (company.CompanyPartners[i].CompanyPartnerFiles != null)
                            {
                                foreach (var file in company.CompanyPartners[i].CompanyPartnerFiles)
                                {
                                    file.DateUpdated = DateTime.Now;
                                    file.DateCreated = DateTime.Now;

                                    file.Connection = company.CompanyFiles.FirstOrDefault().Connection;
                                    file.Container  = "bplace";
                                    //file.Container = file.Type == (int)Model.Profile.Company.Entity.CompanyPartnerFile.FileType.PROFILE ? "companyrecognitionfacial" : "companydocuments";


                                    var blob = AzureBlobStorage.Upload(file.FilePath,
                                                                       file.Name,
                                                                       file.Connection,
                                                                       file.Container
                                                                       );

                                    if (blob != null)
                                    {
                                        file.URL = blob.StorageUri.PrimaryUri.AbsoluteUri;
                                        file.IdCompanyPartner = company.CompanyPartners[i].Id;
                                        standartPersistence.Insert(file);
                                    }
                                    else
                                    {
                                        throw new System.Exception("Falha no processo de Upload de arquivos no AzureBlobStorage.");
                                    }
                                }
                            }
                        }
                    }

                    if (company.CompanyFiles != null && company.CompanyFiles.Count > 0)
                    {
                        for (int i = 0; i < company.CompanyFiles.Count; i++)
                        {
                            var blob = AzureBlobStorage.Upload(company.CompanyFiles[i].FilePath,
                                                               company.CompanyFiles[i].Name,
                                                               company.CompanyFiles[i].Connection,
                                                               company.CompanyFiles[i].Container
                                                               );

                            if (blob != null)
                            {
                                company.CompanyFiles[i].URL         = blob.StorageUri.PrimaryUri.AbsoluteUri;
                                company.CompanyFiles[i].IdCompany   = company.Id;
                                company.CompanyFiles[i].DateUpdated = DateTime.Now;
                                company.CompanyFiles[i].DateCreated = DateTime.Now;

                                standartPersistence.Insert(company.CompanyFiles[i]);
                            }
                            else
                            {
                                throw new System.Exception("Falha no processo de Upload de arquivos no AzureBlobStorage.");
                            }
                        }
                    }

                    transactionScope.Complete();
                }
                catch (SqlException e)
                {
                    throw e;
                }
                catch (TransactionException e)
                {
                    throw e;
                }
            }
        }
Пример #12
0
        public Model.Profile.Company.Entity.Company LoginCompany(CompanyPartner companyPartner)
        {
            try
            {
                StandartPersistence standartPersistence =
                    new StandartPersistence(this.Connection);
                Model.Profile.Company.Entity.Company company = new Model.Profile.Company.Entity.Company();
                string pass = CryptHelper.Encrypt(companyPartner.Password);
                companyPartner = standartPersistence.GetEntities <CompanyPartner>(CommandType.Text,
                                                                                  "SELECT * FROM CompanyPartner WHERE Email = @Email AND [Password] = @Password",
                                                                                  new
                {
                    Email    = companyPartner.Email,
                    Password = pass
                }).SingleOrDefault();

                if (companyPartner != null && companyPartner.Id > 0)
                {
                    StringBuilder selectCompany = new StringBuilder();
                    selectCompany.Append($@"select c.* from company c 
                                           join companypartner cp on cp.idcompany = c.id
                                           where cp.id= {companyPartner.Id} ");
                    company = standartPersistence.GetEntities <Model.Profile.Company.Entity.Company>(CommandType.Text, selectCompany.ToString()).SingleOrDefault();

                    company.CompanyPartners = new List <CompanyPartner>();

                    if (companyPartner.IsOwner == true)
                    {
                        string part = $@"select * from companypartner where idcompany ={company.Id}";
                        company.CompanyPartners = standartPersistence.GetEntities <CompanyPartner>(CommandType.Text, part).ToList();
                    }
                    else
                    {
                        company.CompanyPartners.Add(companyPartner);
                    }

                    StringBuilder selectAddress = new StringBuilder();
                    selectAddress.Append($@"SELECT a.* FROM Address a 
                                            INNER JOIN CompanyAddress ca ON a.Id = ca.IdAddress 
                                            INNER JOIN Company c ON c.Id = ca.IdCompany 
                                            WHERE c.Id = {company.Id}");

                    company.Address = new Address();
                    company.Address = standartPersistence.GetEntities <Address>(CommandType.Text, selectAddress.ToString()).SingleOrDefault();

                    company.Address.State = new State();
                    company.Address.State = standartPersistence.GetEntities <State>(CommandType.Text,
                                                                                    "SELECT IdEstate, UPPER(Name) AS Name, UF FROM State WHERE IdEstate = @IdEstate",
                                                                                    new { IdEstate = company.Address.IdEstate }).SingleOrDefault();

                    City city = new City();
                    city = standartPersistence.GetEntities <City>(CommandType.Text,
                                                                  "SELECT IdCity, Name, IdEstate FROM City WHERE IdCity = @IdCity",
                                                                  new { IdCity = company.Address.IdCity }).SingleOrDefault();

                    company.Address.State.Cities = new List <City>();
                    company.Address.State.Cities.Add(city);
                }
                else
                {
                    company = new Model.Profile.Company.Entity.Company();
                    company.CompanyPartners = new List <CompanyPartner>();
                }

                return(company);
            }
            catch (TransactionException e)
            {
                throw e;
            }
        }
Пример #13
0
        public void UpdateCompany(Model.Profile.Company.Entity.Company company)
        {
            using (var transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew))
            {
                try
                {
                    StandartPersistence standartPersistence =
                        new StandartPersistence(this.Connection);
                    company.DateUpdated = DateTime.Now;
                    standartPersistence.Update <Model.Profile.Company.Entity.Company>(company);

                    if (company.Address != null)
                    {
                        company.Address.DateUpdated = DateTime.Now;
                        standartPersistence.Update <Address>(company.Address);
                    }

                    if (company.Expertises != null && company.Expertises.Count > 0)
                    {
                        // Remove todas as associações para incluir novamente.
                        standartPersistence.Execute(CommandType.Text,
                                                    "DELETE CompanyExpertise WHERE @IdCompany = IdCompany",
                                                    new
                        {
                            IdCompany = company.Id
                        });

                        for (int i = 0; i < company.Expertises.Count; i++)
                        {
                            standartPersistence.Execute(CommandType.Text,
                                                        "INSERT INTO CompanyExpertise Values (@IdCompany, @IdExpertise)",
                                                        new
                            {
                                IdCompany   = company.Id,
                                IdExpertise = company.Expertises[i].IdExpertise,
                                MinCost     = company.Expertises[i].CompanyMinCost
                            });
                        }
                    }

                    if (company.CompanyPartners != null && company.CompanyPartners.Count > 0)
                    {
                        for (int i = 0; i < company.CompanyPartners.Count; i++)
                        {
                            // Caso o sócio ainda não exista, insere
                            if (company.CompanyPartners[i].Id == 0)
                            {
                                company.CompanyPartners[i].DateUpdated = DateTime.Now;
                                company.CompanyPartners[i].IdCompany   = company.Id;
                                company.CompanyPartners[i].Password    = CryptHelper.Encrypt(company.CompanyPartners[i].Password);
                                standartPersistence.Insert(company.CompanyPartners[i]);
                            }
                            // Caso exista, atualiza
                            else
                            {
                                company.CompanyPartners[i].DateUpdated = DateTime.Now;
                                company.CompanyPartners[i].Password    = CryptHelper.Encrypt(company.CompanyPartners[i].Password);
                                standartPersistence.Update(company.CompanyPartners[i]);
                            }
                        }
                    }

                    if (company.CompanyFiles != null && company.CompanyFiles.Count > 0)
                    {
                        for (int i = 0; i < company.CompanyFiles.Count; i++)
                        {
                            if (company.CompanyFiles[i].Id == 0)
                            {
                                var blob = AzureBlobStorage.Upload(company.CompanyFiles[i].FilePath,
                                                                   company.CompanyFiles[i].Name,
                                                                   company.CompanyFiles[i].Connection,
                                                                   company.CompanyFiles[i].Container
                                                                   );

                                if (blob != null)
                                {
                                    company.CompanyFiles[i].URL         = blob.StorageUri.PrimaryUri.AbsoluteUri;
                                    company.CompanyFiles[i].IdCompany   = company.Id;
                                    company.CompanyFiles[i].DateUpdated = DateTime.Now;
                                    standartPersistence.Insert(company.CompanyFiles[i]);
                                }
                                else
                                {
                                    throw new System.Exception("Falha no processo de Upload de arquivos no AzureBlobStorage.");
                                }
                            }
                        }
                    }

                    transactionScope.Complete();
                }
                catch (SqlException e)
                {
                    throw e;
                }
                catch (TransactionException e)
                {
                    throw e;
                }
            }
        }