예제 #1
0
        protected void PrepareViewModel(ViewModelBase model,
                                        string pageTitle, int currentItemId = 0, int objectFlags = 0)
        {
            model.PageTitle = pageTitle;

            Dictionary <string, string> dict = new Dictionary <string, string>();

            dict.AddProperty("id", currentItemId);

            UserModel user = MembershipManagementService.User;

            if (user != null)
            {
                model.DisplayDateFormat = user.DateFormat;
                model.JQDateFormat      = user.DateFormat.ToLower().Replace("yyyy", "yy");
                dict.AddProperty("USERNAME", user.Name.Replace(".", " ").WordCapitalise());
            }
            else
            {
                dict.AddProperty("USERNAME", "");
            }

            var tempAreaName   = this.ControllerContext.RouteData.DataTokens["area"];
            var areaName       = (tempAreaName == null ? "" : tempAreaName.ToString() + ":");
            var controllerName = this.ControllerContext.RouteData.Values["controller"].ToString();

            // Object flags are:
            //      1   Requires Customer
            //      2   Requires Purchase
            //      4
            //      8
            //      16  Requires Product
            //      32  Requires no product
            model.Menu = MenuService.GetMenu(0,
                                             MembershipManagementService.IsLoggedIn,
                                             MembershipManagementService.FindUserRoles(),
                                             objectFlags,
                                             areaName + controllerName,
                                             dict);

            // Get the company list
            model.AvailableCompanies = CompanyService.FindCompaniesListItemModel();

            int selectedCompanyId = MembershipManagementService.GetProperty(MMSProperty.CurrentCompany, -1);

            if (selectedCompanyId == -1)
            {
                // No company selected, so use the first in the list
                if (model.AvailableCompanies.Count() > 0)
                {
                    selectedCompanyId = Convert.ToInt32(model.AvailableCompanies.First().Id);
                }
            }
            if (selectedCompanyId > 0)
            {
                model.CurrentCompany = CompanyService.FindCompanyModel(selectedCompanyId);
                model.MarginLogo     = model.CurrentCompany.MarginLogo;
            }
        }
        public ActionResult Import(EditDataMappingViewModel model, string command)
        {
            if (command.ToLower() == "import")
            {
                var error = ProductService.ValidateProducts(CurrentCompany, CurrentUser, model.Data.Headings);
                if (error.IsError)
                {
                    prepareViewModel(model);
                    model.Data = FileImportService.GetData(CurrentCompany, CurrentUser);
                    model.SetError(ErrorIcon.Error, error.Message);

                    return(View("ImportMappings", model));
                }
                else
                {
                    error = ProductService.ImportProducts(CurrentCompany,
                                                          CurrentUser,
                                                          model.Data.Headings,
                                                          MembershipManagementService.GetProperty("ProdImportZip", ""));
                    if (error.IsError)
                    {
                        prepareViewModel(model);
                        model.Data = FileImportService.GetData(CurrentCompany, CurrentUser);
                        model.SetError(ErrorIcon.Error, error.Message);

                        return(View("ImportMappings", model));
                    }
                    else
                    {
                        // Successfully imported, so redirect to purchase orders screen
                        MembershipManagementService.SaveProperty("ProdImportZip", "");
                        return(RedirectToAction("Products", "Products", new { Area = "Products" }));
                    }
                }
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
        public void SavePropertyTest()
        {
            var user = GetTestUser();

            MembershipManagementService.User = user;    // So we save properties against this user

            for (int i = 1; i < 50; i++)
            {
                string propName = "Prop" + i.ToString();

                // Set a string value
                string propValue1 = RandomString();

                MembershipManagementService.SaveProperty(propName, propValue1);

                string stringValue = MembershipManagementService.GetProperty(propName, "");
                Assert.IsTrue(propValue1 == stringValue, $"Error: Property {propName} returned {stringValue} when {propValue1} was expected");

                // Set an int value
                int propValue2 = RandomInt();

                MembershipManagementService.SaveProperty(propName, propValue2);

                int intValue = MembershipManagementService.GetProperty(propName, 0);
                Assert.IsTrue(propValue2 == intValue, $"Error: Property {propName} returned {intValue} when {propValue2} was expected");

                // set a date-time value
                DateTime propValue3 = RandomDateTime();

                MembershipManagementService.SaveProperty(propName, propValue3);

                DateTime dateTimeValue = MembershipManagementService.GetProperty(propName, new DateTime(1900, 1, 1, 0, 0, 0));
                // We compare the strings because the date values are sub-millisecond different
                Assert.IsTrue(propValue3.ToString() == dateTimeValue.ToString(), $"Error: Property {propName} returned {dateTimeValue} when {propValue3} was expected");
            }
        }