public async Task <IActionResult> PostEdit()
        {
            if (!ModelState.IsValid)
            {
                return(View(CompanyViewModel));
            }
            var company = CompanyViewModel.Company;

            var companyInDb = await _context.Companies.FindAsync(company.Id);

            if (companyInDb == null)
            {
                return(NotFound());
            }

            // update changes
            companyInDb.CustomerId     = company.CustomerId;
            companyInDb.Name           = company.Name;
            companyInDb.Email          = company.Email;
            companyInDb.Mobile         = company.Mobile;
            companyInDb.CountryId      = company.CountryId;
            companyInDb.CityId         = company.CityId;
            companyInDb.Address        = company.Address;
            companyInDb.DivisionNumber = company.DivisionNumber;
            companyInDb.Location       = company.Location;
            companyInDb.Notes          = company.Notes;

            // remove the old types ids
            companyInDb.CompaniesTypes.Clear();

            // get the selected types ids
            string typesList = "";

            typesList += CompanyViewModel.TypesList;
            if (typesList.Length > 0)
            {
                var companyTypesIds = typesList.Split(",");
                foreach (var id in companyTypesIds)
                {
                    var companiesType = new CompaniesType()
                    {
                        CompanyId     = company.Id,
                        CompanyTypeId = long.Parse(id)
                    };
                    companyInDb.CompaniesTypes.Add(companiesType);
                }
            }

            await _context.SaveChangesAsync();

            return(RedirectToAction("Get", new { id = companyInDb.Id }));
        }
        public async Task <IActionResult> PostCreate()
        {
            var company = CompanyViewModel.Company;

            if (!ModelState.IsValid)
            {
                return(View(CompanyViewModel));
            }

            // Add company to database
            await _context.Companies.AddAsync(company);

            // get the selected types ids
            string typesList = "";

            typesList += CompanyViewModel.TypesList;
            if (typesList.Length > 0)
            {
                var companyTypesIds = typesList.Split(",");

                // Insert relations to CompaniesTypes table
                foreach (var id in companyTypesIds)
                {
                    var companyType = new CompaniesType()
                    {
                        CompanyId     = company.Id,
                        CompanyTypeId = long.Parse(id)
                    };
                    await _context.CompaniesTypes.AddAsync(companyType);
                }
            }

            // Save Changes
            await _context.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }