示例#1
0
        public IActionResult SignIn(CompanyVendor companyVendor)
        {
            try
            {
                var _companyVendor = _db.CompanyVendors.Where(cv => cv.Name == companyVendor.Name && cv.Password == companyVendor.Password).SingleOrDefault();
                if (_companyVendor != null)
                {
                    _session.SetInt32("companyvendorid", _companyVendor.CompanyVendorId);

                    ModelState.Clear();
                    return(RedirectToAction("Dashboard", "CompanyVendors"));
                }
                else
                {
                    ViewData["mismatch"] = "The Vendor Name and Password do not match";
                }
                //var _password = BCrypt.Net.BCrypt.EnhancedVerify(companyVendor.Password, _companyVendor.Password);
                //if (_password == true)
                //{
                //    _session.SetInt32("companyvendorid", _companyVendor.CompanyVendorId);
                //    ModelState.Clear();
                //    return RedirectToAction("Dashboard", "CompanyVendor");
                //}
                //else
                //{
                //    ViewData["mismatch"] = "The Vendor Name and Password do not match";
                //}

                return(View());
            }
            catch
            {
                return(View());
            }
        }
        public async Task <IActionResult> AddAsVendor(CompanyVendor companyVendor)
        {
            if (ModelState.IsValid)
            {
                var id = _session.GetInt32("companyvendorid");


                var x = await _db.CompanyVendors.FindAsync(Convert.ToInt32(id));

                var _vendor = new Vendor
                {
                    Name          = x.Name,
                    Address       = x.Address,
                    ContactNumber = x.ContactNumber,
                    OfficeNumber  = x.OfficeNumber,
                    VendorItem    = x.VendorItem,
                    VendorType    = x.VendorType,
                    RestaurantId  = _session.GetInt32("restaurantsessionid"),
                };

                await _db.Vendors.AddAsync(_vendor);

                await _db.SaveChangesAsync();

                _session.Remove("companyvendorid");

                TempData["companyvendor"]    = "You have successfully added " + _vendor.Name + " as a new Vendor!!!";
                TempData["notificationType"] = NotificationType.Success.ToString();

                return(Json(new { success = true }));
            }

            return(RedirectToAction("Index"));
        }
        public IActionResult SignIn(CompanyVendor companyVendor)
        {
            try
            {
                var _companyVendor = _db.CompanyVendors.Where(cv => cv.Name == companyVendor.Name).SingleOrDefault();

                var _password = BCrypt.Net.BCrypt.Verify(companyVendor.Password, _companyVendor.Password);
                if (_password == true)
                {
                    _session.SetInt32("companyvendorid", _companyVendor.CompanyVendorId);
                    _session.SetString("companyvendorname", _companyVendor.Name);
                    _session.SetString("companyvendorpassword", _companyVendor.Password);
                    _session.SetString("companyvendorcomfirmpassword", _companyVendor.ConfirmPassword);
                    _session.SetString("companyvendoraddress", _companyVendor.Address);
                    _session.SetString("companyvendorcontactnumber", _companyVendor.ContactNumber);
                    _session.SetString("companyvendorofficenumber", _companyVendor.OfficeNumber);
                    _session.SetString("companyvendorvendoritem", _companyVendor.VendorItem);

                    ModelState.Clear();
                    return(RedirectToAction("Dashboard", "CompanyVendors"));
                }
                else
                {
                    ViewData["mismatch"] = "The Vendor Name and Password do not match";
                }

                return(View());
            }
            catch
            {
                return(View());
            }
        }
        public async Task <IActionResult> ChangePassword(CompanyVendor companyVendor)
        {
            var companyvendorid = _session.GetInt32("companyvendorid");

            if (companyvendorid == null)
            {
                return(RedirectToAction("Signin", "CompanyVendors"));
            }

            if (companyvendorid != companyVendor.CompanyVendorId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    companyVendor.Password        = BCrypt.Net.BCrypt.HashPassword(companyVendor.Password);
                    companyVendor.ConfirmPassword = BCrypt.Net.BCrypt.HashPassword(companyVendor.ConfirmPassword);
                    companyVendor.Name            = _session.GetString("companyvendorname");
                    companyVendor.OfficeNumber    = _session.GetString("companyvendorofficenumber");
                    companyVendor.Address         = _session.GetString("companyvendoraddress");
                    companyVendor.ContactNumber   = _session.GetString("companyvendorcontactnumber");
                    companyVendor.VendorItem      = _session.GetString("companyvendorvendoritem");
                    companyVendor.VendorType      = VendorType.Registered;

                    _db.Update(companyVendor);
                    await _db.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CompanyVendorExists(companyVendor.CompanyVendorId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                TempData["companyvendor"]    = "   Password changed!!!";
                TempData["notificationType"] = NotificationType.Success.ToString();

                return(View("Dashboard"));
            }

            return(RedirectToAction("Dashboard"));
        }
        public async Task <IActionResult> Profile(CompanyVendor companyVendor)
        {
            var companyvendorid = _session.GetInt32("companyvendorid");

            if (companyvendorid == null)
            {
                return(RedirectToAction("Signin", "CompanyVendors"));
            }

            if (companyvendorid != companyVendor.CompanyVendorId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    companyVendor.Password        = _session.GetString("companyvendorpassword");
                    companyVendor.ConfirmPassword = _session.GetString("companyvendorcomfirmpassword");

                    companyVendor.VendorType = VendorType.Registered;

                    _db.Update(companyVendor);
                    await _db.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!CompanyVendorExists(companyVendor.CompanyVendorId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                TempData["companyvendor"]    = "Profile Updated!!!";
                TempData["notificationType"] = NotificationType.Success.ToString();

                return(View("Dashboard"));
            }

            return(RedirectToAction("Dashboard"));
        }
        public async Task <IActionResult> Register(CompanyVendor companyVendor)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (_db.CompanyVendors.Any(cv => cv.Name == companyVendor.Name))
                    {
                        ViewData["doublename"] = "Vendor name already exists";
                    }
                    else
                    {
                        var _companyVendor = new CompanyVendor
                        {
                            Name            = companyVendor.Name,
                            Address         = companyVendor.Address,
                            ContactNumber   = companyVendor.ContactNumber,
                            OfficeNumber    = companyVendor.OfficeNumber,
                            VendorType      = Models.Enums.VendorType.Registered,
                            Password        = BCrypt.Net.BCrypt.HashPassword(companyVendor.Password),
                            ConfirmPassword = BCrypt.Net.BCrypt.HashPassword(companyVendor.ConfirmPassword),
                            VendorItem      = companyVendor.VendorItem,
                        };

                        await _db.CompanyVendors.AddAsync(_companyVendor);

                        await _db.SaveChangesAsync();

                        ModelState.Clear();
                        return(RedirectToAction("SignIn", "CompanyVendors"));
                    }

                    return(View());
                }
            }
            catch
            {
                return(View());
            }

            return(View());
        }
示例#7
0
        private void UpdateCompanyTypes(string companyTypes, Company companyToUpdate)
        {
            if (String.IsNullOrEmpty(companyTypes))
            {
                return;
            }
            if (companyTypes == ";;")
            {
                companyToUpdate.CompanyCustomers.Clear();
                companyToUpdate.CompanyContractors.Clear();
                companyToUpdate.CompanyVendors.Clear();
                return;
            }
            var selectedOptions = companyTypes.Split(';');

            // Customer Types
            var selectedCustomerHS = new HashSet <string>(selectedOptions[0].Split(','));
            var currentCustomerHS  = new HashSet <int>(companyToUpdate.CompanyCustomers.Select(s => s.CustomerTypeID));

            foreach (var s in _context.CustomerTypes)
            {
                if (selectedCustomerHS.Contains(s.CustomerTypeID.ToString()))
                {
                    if (!currentCustomerHS.Contains(s.CustomerTypeID))
                    {
                        companyToUpdate.CompanyCustomers.Add(new CompanyCustomer
                        {
                            CustomerTypeID = s.CustomerTypeID,
                            CompanyID      = companyToUpdate.CompanyID
                        });
                    }
                }
                else
                {
                    if (currentCustomerHS.Contains(s.CustomerTypeID))
                    {
                        CompanyCustomer specToRemove = companyToUpdate.CompanyCustomers.SingleOrDefault(c => c.CustomerTypeID == s.CustomerTypeID);
                        _context.Remove(specToRemove);
                    }
                }
            }

            //Contractor Types
            var selectedContractorHS = selectedOptions[1].Split(',')
                                       .ToDictionary(k => k.Split('|').First(), v => v.Split('|').Last());
            var currentContractors = companyToUpdate.CompanyContractors;

            foreach (var s in _context.ContractorTypes)
            {
                if (selectedContractorHS.TryGetValue(s.ContractorTypeID.ToString(), out var expiryDate))
                {
                    var companyContractor = currentContractors.FirstOrDefault(c => c.ContractorTypeID == s.ContractorTypeID);
                    if (companyContractor == null)
                    {
                        companyContractor = new CompanyContractor
                        {
                            ContractorTypeID = s.ContractorTypeID,
                            CompanyID        = companyToUpdate.CompanyID
                        };
                        companyToUpdate.CompanyContractors.Add(companyContractor);
                    }

                    if (DateTime.TryParse(expiryDate, out var expDate))
                    {
                        companyContractor.ExpiryDate = expDate;
                    }
                }
                else
                {
                    if (currentContractors.Any(c => c.ContractorTypeID == s.ContractorTypeID))
                    {
                        var specToRemove = companyToUpdate.CompanyContractors.SingleOrDefault(c => c.ContractorTypeID == s.ContractorTypeID);
                        _context.Remove(specToRemove);
                    }
                }
            }

            //Vendor Types
            var selectedVendorHS = new HashSet <string>(selectedOptions[2].Split(','));
            var currentVendorHS  = new HashSet <int>(companyToUpdate.CompanyVendors.Select(s => s.VendorTypeID));

            foreach (var s in _context.VendorTypes)
            {
                if (selectedVendorHS.Contains(s.VendorTypeID.ToString()))
                {
                    if (!currentVendorHS.Contains(s.VendorTypeID))
                    {
                        companyToUpdate.CompanyVendors.Add(new CompanyVendor
                        {
                            VendorTypeID = s.VendorTypeID,
                            CompanyID    = companyToUpdate.CompanyID
                        });
                    }
                }
                else
                {
                    if (currentVendorHS.Contains(s.VendorTypeID))
                    {
                        CompanyVendor specToRemove = companyToUpdate.CompanyVendors.SingleOrDefault(v => v.VendorTypeID == s.VendorTypeID);
                        _context.Remove(specToRemove);
                    }
                }
            }
        }
示例#8
0
        public async Task <IActionResult> InsertFromExcelCompany(IFormFile theExcel)
        {
            if (theExcel == null)
            {
                ModelState.AddModelError("No files selected", "Please select a file");
                return(RedirectToAction(nameof(Index)));
            }
            ExcelPackage excel;

            using (var memoryStream = new MemoryStream())
            {
                await theExcel.CopyToAsync(memoryStream);

                excel = new ExcelPackage(memoryStream);
            }
            var workSheet = excel.Workbook.Worksheets[0];
            var start     = workSheet.Dimension.Start;
            var end       = workSheet.Dimension.End;

            //Start a new list to hold imported objects
            List <Company>           companies          = new List <Company>();
            List <CompanyVendor>     companyVendors     = new List <CompanyVendor>();
            List <CompanyContractor> companyContractors = new List <CompanyContractor>();
            List <CompanyCustomer>   companyCustomers   = new List <CompanyCustomer>();

            for (int row = start.Row + 1; row <= end.Row; row++)
            {
                //Check if employee exist in database already
                string nameCompare = workSheet.Cells[row, 1].Text;
                //string tempName = _context.Employees.FirstOrDefault(p => p.Email == emailCompare).Email;
                if (_context.Companies.FirstOrDefault(p => p.Name == nameCompare) == null)
                {
                    try
                    {
                        Company a = new Company
                        {
                            Name              = workSheet.Cells[row, 1].Text,
                            Location          = workSheet.Cells[row, 2].Text,
                            CreditCheck       = workSheet.Cells[row, 3].Text == "1",
                            DateChecked       = DateTime.Parse((workSheet.Cells[row, 4].Text == "") ? "1900-01-01" : workSheet.Cells[row, 4].Text),
                            BillingTermID     = _context.BillingTerms.FirstOrDefault(b => b.Terms == workSheet.Cells[row, 5].Text).BillingTermID,
                            BillingTerm       = _context.BillingTerms.FirstOrDefault(b => b.Terms == workSheet.Cells[row, 5].Text),
                            CurrencyID        = _context.Currencies.FirstOrDefault(b => b.CurrencyName == workSheet.Cells[row, 6].Text).CurrencyID,
                            Currency          = _context.Currencies.FirstOrDefault(b => b.CurrencyName == workSheet.Cells[row, 6].Text),
                            Phone             = (workSheet.Cells[row, 7].Text != "") ? Convert.ToInt64(workSheet.Cells[row, 7].Text.Replace(")", "").Replace("(", "").Replace("-", "").Replace(" ", "")) : Convert.ToInt64("0"),
                            Website           = workSheet.Cells[row, 8].Text,
                            BillingAddress1   = workSheet.Cells[row, 9].Text,
                            BillingAddress2   = workSheet.Cells[row, 10].Text,
                            BillingCity       = workSheet.Cells[row, 11].Text,
                            BillingProvinceID = _context.Provinces.FirstOrDefault(b => b.ProvinceName == workSheet.Cells[row, 12].Text).ProvinceID,
                            BillingPostalCode = workSheet.Cells[row, 13].Text,
                            BillingCountryID  = _context.Countries.FirstOrDefault(b => b.CountryName == workSheet.Cells[row, 14].Text).CountryID,

                            ShippingAddress1   = workSheet.Cells[row, 15].Text,
                            ShippingAddress2   = workSheet.Cells[row, 16].Text,
                            ShippingCity       = workSheet.Cells[row, 17].Text,
                            ShippingProvinceID = _context.Provinces.FirstOrDefault(b => b.ProvinceName == workSheet.Cells[row, 18].Text).ProvinceID,
                            ShippingPostalCode = workSheet.Cells[row, 19].Text,
                            ShippingCountryID  = _context.Countries.FirstOrDefault(b => b.CountryName == workSheet.Cells[row, 20].Text).CountryID,


                            Active = workSheet.Cells[row, 27].Text == "1",
                            Notes  = workSheet.Cells[row, 28].Text
                        };
                        companies.Add(a);
                    }
                    catch (Exception)
                    {
                        ModelState.AddModelError("Error", "Error while parsing the file");
                        return(RedirectToAction(nameof(Index)));
                    }
                }
            }
            _context.Companies.AddRange(companies);
            _context.SaveChanges();

            for (int row = start.Row + 1; row <= end.Row; row++)
            {
                try
                {
                    CompanyCustomer e = new CompanyCustomer
                    {
                        CompanyID      = _context.Companies.FirstOrDefault(e => e.Name == workSheet.Cells[row, 1].Text).CompanyID,
                        CustomerTypeID = _context.CustomerTypes.FirstOrDefault(e => e.Type == workSheet.Cells[row, 22].Text).CustomerTypeID
                    };
                    companyCustomers.Add(e);
                    CompanyVendor f = new CompanyVendor
                    {
                        CompanyID    = _context.Companies.FirstOrDefault(f => f.Name == workSheet.Cells[row, 1].Text).CompanyID,
                        VendorTypeID = _context.VendorTypes.FirstOrDefault(f => f.Type == workSheet.Cells[row, 24].Text).VendorTypeID
                    };
                    companyVendors.Add(f);
                    CompanyContractor g = new CompanyContractor
                    {
                        CompanyID        = _context.Companies.FirstOrDefault(g => g.Name == workSheet.Cells[row, 1].Text).CompanyID,
                        ContractorTypeID = _context.ContractorTypes.FirstOrDefault(g => g.Type == workSheet.Cells[row, 26].Text).ContractorTypeID
                    };
                    companyContractors.Add(g);
                }
                catch (Exception)
                {
                    ModelState.AddModelError("Error", "Error while parsing the file");
                    return(RedirectToAction(nameof(Index)));
                }
            }

            _context.CompanyCustomers.AddRange(companyCustomers);
            _context.CompanyVendors.AddRange(companyVendors);
            _context.CompanyContractors.AddRange(companyContractors);
            _context.SaveChanges();

            return(RedirectToAction(nameof(Index)));
        }