public async Task <ActionResult> Upload(string companyName, string vat, string ownerName)
        {
            if (companyName != null)
            {
                var inputCity = new CompanyInputModel
                {
                    Name  = companyName,
                    VAT   = vat,
                    Owner = ownerName
                };
                var companyOutputModel = new CompanyOutputModel
                {
                    Name  = await companiesService.UploadCompany(inputCity),
                    VAT   = vat,
                    Owner = ownerName
                };

                return(this.View(companyOutputModel));
            }

            else
            {
                return(Redirect("Index"));
            }
        }
        public void CreateCompany(CompanyInputModel companyInputModel)
        {
            var createdCompany = InsertCompany(companyInputModel.CompanyName, companyInputModel.ParentCompanyId);

            InsertStock(createdCompany, companyInputModel.StockCode, companyInputModel.BussinessCategoryId);

            InsertCompanyProductRelation(companyInputModel.ProductIds, createdCompany);
        }
Beispiel #3
0
        public async Task <string> AddCompanyAsync(CompanyInputModel input)
        {
            if (this.companiesRepository.All().Any(c => c.Name == input.Name))
            {
                return(null);
            }

            var company = new Company
            {
                Name      = input.Name,
                TaxNumber = input.TaxNumber,
                Address   = new CompanyAddress
                {
                    MOLFirstName = input.MOLFirstName,
                    MOLLastName  = input.MOLLastName,
                    Address      = new Address
                    {
                        StreetLine = input.StreetLine,
                        Area       = input.Area,
                        City       = input.City,
                        Postcode   = input.Postcode,
                        State      = input.State,
                    },
                },
                Comunicators = new Comunicators
                {
                    Mobile1 = input.Mobile1,
                    Mobile2 = input.Mobile2,
                    Phone1  = input.Phone1,
                    Phone2  = input.Phone2,
                    Email1  = input.Email1,
                    Email2  = input.Email2,
                    Details = input.Details,
                },
            };

            var taxCoutry = this.taxCtrRepo.All().FirstOrDefault(c => c.Name == input.TaxCountry);

            if (taxCoutry == null)
            {
                taxCoutry = new TaxCountry {
                    Name = input.TaxCountry
                };
            }

            company.TaxCountry = taxCoutry;

            await this.companiesRepository.AddAsync(company);

            company.Address.AdminId         = company.AdminId;
            company.Address.Address.AdminId = company.AdminId;
            company.Comunicators.AdminId    = company.AdminId;
            company.TaxCountry.AdminId      = company.AdminId;
            await this.companiesRepository.SaveChangesAsync();

            return(company.Id);
        }
Beispiel #4
0
 public Company Add(CompanyInputModel company)
 {
     return(_companyService.Add(
                new Company
     {
         CompanyName = company.CompanyName,
         CompanyAdress = company.CompanyAdress,
         ContactName = company.ContactName
     }
                ));
 }
        public async void AddCompanyTest()
        {
            using var dbContext = this.GetDbContext();
            var service = this.GetContactsService(dbContext);
            var company = new CompanyInputModel {
                Name = "test"
            };
            var res = await service.AddCompanyAsync(company);

            Assert.NotNull(res);
            Assert.True(dbContext.Companies.Any(x => x.Name == company.Name));
        }
        public async void AddingSameCompanyTwiceShouldReturnNull()
        {
            using var dbContext = this.GetDbContext();
            var service = this.GetContactsService(dbContext);
            var company = new CompanyInputModel {
                Name = "test"
            };
            await service.AddCompanyAsync(company);

            var res = await service.AddCompanyAsync(company);

            Assert.Null(res);
        }
        public async Task <CompanyOutputModel> AddCompany(CompanyInputModel model, CancellationToken cancellationToken)
        {
            var existCompany = await companyRepository.Any(e => e.Name.Equals(model.Name), cancellationToken);

            if (existCompany)
            {
                throw new System.Exception("A empresa informada já existe!");
            }

            var company = mapper.Map <Company>(model);

            return(mapper.Map <CompanyOutputModel>(await companyRepository.Add(company, cancellationToken)));
        }
        public async void Test()
        {
            using var dbContext = this.GetDbContext();
            var service = this.GetContactsService(dbContext);
            var company = new CompanyInputModel {
                Name = "testC"
            };
            await service.AddCompanyAsync(company);

            var res = await service.DeleteAsync(dbContext.Companies.First().Id);

            Assert.True(res);
            Assert.Equal(0, dbContext.Companies.Count());
        }
Beispiel #9
0
        public async Task <CompanyInputModel> GetCompanyAsync(string searchStr)
        {
            var urlSearch = string.Format(BaseUrlSearch, searchStr);
            var document  = await this.context.OpenAsync(urlSearch);

            if (document.StatusCode == System.Net.HttpStatusCode.NotFound ||
                document.DocumentElement.OuterHtml.Contains("Няма намерени резултати"))
            {
                throw new InvalidOperationException("Not found");
            }

            var company = new CompanyInputModel();

            var companyPath = document.QuerySelectorAll("table > tbody > tr > td > a").FirstOrDefault().GetAttribute("href");
            var url         = string.Format(GlobalConstants.RegistryAgencyUrl, companyPath);

            document = await this.context.OpenAsync(url);

            var data     = new Stack <IElement>(document.All.Where(e => e.ClassList.Any(c => c == "col-sm-3" || c == "col-sm-9")));
            var elements = new Dictionary <string, string>();

            while (data.Any())
            {
                var value = data.Pop().TextContent.Trim();
                var key   = data.Pop().TextContent.Trim();
                elements.Add(key, value);
            }

            var mol     = elements["Управители/Съдружници"].Trim();
            var address = elements["Седалище адрес"].Split("\n\n")[0]
                          .Trim()
                          .Split(", ")
                          .ToArray();

            company.Name       = elements["Наименование"];
            company.TaxCountry = address[0];
            company.StreetLine = string.Join(", ", address.Skip(1));
            company.TaxNumber  = $"BG{elements["ЕИК/ПИК"]}";
            company.Details    = elements["Предмет на дейност"].Contains("прочети още") ?
                                 Regex.Match(elements["Предмет на дейност"], @"(?<=\.\.\.\n)(\n|.)+(?=прочети още)").Value.Trim() :
                                 elements["Предмет на дейност"];

            // company.Details = elements["Предмет на дейност"].Split("\n", StringSplitOptions.RemoveEmptyEntries)[2]
            //                                                .TrimStart();
            company.MOLFirstName = Regex.Match(mol, @"(?<=: )([А-Яа-я]+)").Value;
            company.MOLLastName  = Regex.Match(mol, @"([А-Яа-я]+)(?= \()").Value;

            return(company);
        }
Beispiel #10
0
        public async Task <IActionResult> AddCompanyAsync(CompanyInputModel model)
        {
            if (string.IsNullOrEmpty(model.Name))
            {
                return(BadRequest(ResponseResult.Failed(ErrorCode.ValidationError, "Company name can't be empty.")));
            }

            var company = Company.New(model.Name, model.NumOfEmpolyees);

            await _companyRepository.AddCompanyAsync(company);

            var result = Mapper.Map <CompanyOutputModel>(company);

            return(Ok(ResponseResult.SucceededWithData(result)));
        }
        private CompanyInputModel ConvertCompanyToInputModel(TweetStockAnalyzer.Model.Company company)
        {
            var companyInputModel = new CompanyInputModel();

            companyInputModel.CompanyId       = company.CompanyId;
            companyInputModel.CompanyName     = company.CompanyName;
            companyInputModel.ParentCompanyId = company.ParentCompanyId;
            if (company.Stock != null)
            {
                companyInputModel.StockCode           = company.Stock.StockCode;
                companyInputModel.BussinessCategoryId = company.Stock.BussinessCategoryId;
            }

            return(companyInputModel);
        }
        public void UpdateCompany(CompanyInputModel companyInputModel)
        {
            var targetCompany = _companyRepository.ReadAll()
                                .Include(c => c.Stock)
                                .SingleOrDefault(c => c.CompanyId == companyInputModel.CompanyId);

            targetCompany.CompanyName     = companyInputModel.CompanyName;
            targetCompany.ParentCompanyId = companyInputModel.ParentCompanyId;

            _companyRepository.Update(targetCompany);

            ManipulateStock(targetCompany, companyInputModel.StockCode, companyInputModel.BussinessCategoryId);

            ManipulateCompanyProductRelation(targetCompany, companyInputModel.ProductIds);
        }
 public CompanyServiceTest()
 {
     //Models
     company      = new Company("League of Legends");
     companyInput = new CompanyInputModel {
         Name = "League of Legends"
     };
     companyOutput = new CompanyOutputModel {
         Id = Guid.NewGuid(), Name = "League of Legends"
     };
     cancellationToken = new CancellationToken();
     //Mocks
     mockMapper            = new Mock <IMapper>();
     mockCompanyRepository = new Mock <ICompanyRepository>();
 }
        public async Task <IActionResult> AddCompanyModal(CompanyInputModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.Json(new { isValid = false, redirectToUrl = string.Empty, html = this.View(model) }));
            }

            var res = await this.contactsService.AddCompanyAsync(model);

            if (res == null)
            {
                this.ModelState.AddModelError(string.Empty, "Company allready exists.");
                return(this.Json(new { isValid = false, redirectToUrl = string.Empty, html = this.View(model) }));
            }

            return(this.Json(new { isValid = true, redirectToUrl = "reload" }));
        }
        public async Task <IActionResult> AddCompany(CompanyInputModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }

            var res = await this.contactsService.AddCompanyAsync(model);

            if (res == null)
            {
                this.ModelState.AddModelError(string.Empty, "Company allready exists.");
                return(this.View(model));
            }

            return(this.Redirect(GlobalConstants.Index));
        }
Beispiel #16
0
        public async Task <string> UploadCompany(CompanyInputModel company)
        {
            if (company.Name != null)
            {
                var companyModel = new Company
                {
                    Name  = company.Name,
                    VAT   = company.VAT,
                    Owner = company.Owner
                };

                await this.db.Companies.AddAsync(companyModel);

                await this.db.SaveChangesAsync();

                return(company.Name);
            }
            else
            {
                return("");
            }
        }
        public ActionResult Update(int companyId)
        {
            using (var repository = _container.Resolve <ICompanyRepository>())
            {
                var company = repository.Read(companyId);

                var model = new CompanyInputModel();

                model.CompanyId       = companyId;
                model.ParentCompanyId = company.ParentCompanyId;
                model.CompanyName     = company.CompanyName;
                if (company.Stock != null && !company.Stock.IsDeleted)
                {
                    model.StockCode = company.Stock.StockCode;

                    model.BussinessCategoryId = company.Stock.BussinessCategoryId;
                }
                model.Products = company.Products.ToArray();

                return(View(model));
            }
        }
        private Company[] PrepareCompanies()
        {
            var companyInputModel1 = new CompanyInputModel
            {
                CompanyName = "TestCompany1",
                ProductIds  = new[] { _testProduct1.ProductId }
            };

            _workerService.CreateCompany(companyInputModel1);
            var company1 = _companyRepository.ReadAll().First();

            var companyInputModel2 = new CompanyInputModel
            {
                CompanyName         = "TestCompany2",
                ParentCompanyId     = company1.CompanyId,
                StockCode           = "100",
                BussinessCategoryId = _testBussinessCategory.BussinessCategoryId,
                ProductIds          = new[] { _testProduct1.ProductId }
            };

            _workerService.CreateCompany(companyInputModel2);
            var company2 = _companyRepository.ReadAll().ToArray()[1];

            var companyInputModel3 = new CompanyInputModel
            {
                CompanyName         = "TestCompany3",
                BussinessCategoryId = _testBussinessCategory.BussinessCategoryId
            };

            _workerService.CreateCompany(companyInputModel3);
            var company3 = _companyRepository.ReadAll().ToArray()[2];

            return(_companyRepository.ReadAll()
                   .Include(c => c.Products)
                   .ToArray());
        }
Beispiel #19
0
 public IActionResult Save(CompanyInputModel model)
 {
     this.service.Save(model);
     return(this.Ok());
 }
        public async Task <ActionResult> ImportAsync()
        {
            IFormFile file = Request.Form.Files[0];

            string folderName = "UploadExcel";

            string webRootPath = hostEnvironment.WebRootPath;

            string newPath = Path.Combine(webRootPath, folderName);

            var errorDictionary = new Dictionary <int, string>();


            if (!Directory.Exists(newPath))

            {
                Directory.CreateDirectory(newPath);
            }

            if (file.Length > 0)
            {
                string sFileExtension = Path.GetExtension(file.FileName).ToLower();

                ISheet sheet;

                string fullPath = Path.Combine(newPath, file.FileName);

                using (var stream = new FileStream(fullPath, FileMode.Create))

                {
                    file.CopyTo(stream);

                    stream.Position = 0;

                    if (sFileExtension == ".xls")

                    {
                        HSSFWorkbook hssfwb = new HSSFWorkbook(stream); //This will read the Excel 97-2000 formats

                        sheet = hssfwb.GetSheetAt(0);                   //get first sheet from workbook
                    }

                    else

                    {
                        XSSFWorkbook hssfwb = new XSSFWorkbook(stream); //This will read 2007 Excel format

                        sheet = hssfwb.GetSheetAt(0);                   //get first sheet from workbook
                    }

                    IRow headerRow = sheet.GetRow(0); //Get Header Row

                    int cellCount = headerRow.LastCellNum;

                    for (int j = 0; j < cellCount; j++)
                    {
                        ICell cell = headerRow.GetCell(j);

                        if (cell == null || string.IsNullOrWhiteSpace(cell.ToString()))
                        {
                            continue;
                        }
                    }

                    for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++) //Read Excel File

                    {
                        IRow row = sheet.GetRow(i);

                        if (row == null)
                        {
                            continue;
                        }

                        if (row.Cells.All(d => d.CellType == CellType.Blank))
                        {
                            continue;
                        }

                        var newCompany = new CompanyInputModel();

                        for (int j = row.FirstCellNum; j < cellCount; j++)
                        {
                            string currentRow = "";

                            if (row.GetCell(j) != null)
                            {
                                currentRow = row.GetCell(j).ToString().TrimEnd();
                            }

                            switch (j)
                            {
                            case 0:
                                if (currentRow != null)
                                {
                                    newCompany.Name = currentRow;
                                }
                                else
                                {
                                    errorDictionary[i] = currentRow;
                                }
                                break;

                            case 1:
                                newCompany.VAT = currentRow;
                                break;
                            }
                        }

                        await this.companiesService.UploadCompany(newCompany);
                    }
                }
            }

            var errorsCombined = new CustomErrorDictionaryOutputModel
            {
                Errors = errorDictionary
            };

            return(this.View(errorsCombined));
        }
Beispiel #21
0
        public async Task <CompanyOutputModel> Post([FromBody] CompanyInputModel model, CancellationToken cancellationToken)
        {
            var result = await companyService.AddCompany(model, cancellationToken);

            return(result);
        }
        public ActionResult Update(CompanyInputModel companyInputModel)
        {
            _workerService.UpdateCompany(companyInputModel);

            return(RedirectToIndex(string.Format("{0} is updated!", companyInputModel.CompanyName)));
        }