/// <summary> /// Common Code moved to service /// </summary> /// <param name="source"></param> /// <param name="destination">Note, this is a ref so tests work</param> public void TransferValues(WorkgroupVendor source, ref WorkgroupVendor destination) { Mapper.Map(source, destination); // existing vendor, set the values if (!string.IsNullOrWhiteSpace(source.VendorId) && !string.IsNullOrWhiteSpace(source.VendorAddressTypeCode)) { var vendor = _vendorRepository.GetNullableById(source.VendorId); var vendorAddress = _vendorAddressRepository.Queryable.FirstOrDefault(a => a.Vendor == vendor && a.TypeCode == source.VendorAddressTypeCode); if (vendor != null && vendorAddress != null) { destination.Name = vendor.Name; destination.Line1 = vendorAddress.Line1; destination.Line2 = vendorAddress.Line2; destination.Line3 = vendorAddress.Line3; destination.City = vendorAddress.City; destination.State = vendorAddress.State ?? "XX"; // If vendor is in another Country like Australia, the State may/is null destination.Zip = vendorAddress.Zip ?? "XXXXX"; destination.CountryCode = vendorAddress.CountryCode; destination.Phone = vendorAddress.PhoneNumber; destination.Fax = vendorAddress.FaxNumber; destination.Email = vendorAddress.Email; destination.Url = vendorAddress.Url; } } }
public void TestTransferValuesWhenKfsVendorHasNullState() { #region Arrange var vendors = new List <Vendor>(); vendors.Add(CreateValidEntities.Vendor(1)); vendors[0].SetIdTo("1"); new FakeVendors(0, VendorRepository, vendors, true); var vendorAddress = new List <VendorAddress>(); vendorAddress.Add(CreateValidEntities.VendorAddress(2)); vendorAddress[0].Vendor = VendorRepository.Queryable.Single(a => a.Id == "1"); vendorAddress[0].TypeCode = "2"; vendorAddress[0].State = null; new FakeVendorAddresses(0, VendorAddressRepository, vendorAddress, false); var source = CreateValidEntities.WorkgroupVendor(1); source.VendorId = "1"; source.VendorAddressTypeCode = "2"; var destination = new WorkgroupVendor(); Assert.AreNotEqual(destination.State, "XX"); #endregion Arrange #region Act WorkgroupService.TransferValues(source, ref destination); #endregion Act #region Assert Assert.AreEqual("XX", destination.State); #endregion Assert }
public static WorkgroupVendorViewModel Create(IRepositoryWithTypedId<Vendor, string> vendorRepository, WorkgroupVendor workgroupVendor = null, Vendor vendor = null, VendorAddress vendorAddress = null, bool? newVendor = null) { Check.Require(vendorRepository != null, "Repository must be supplied"); var addresses = vendor != null ? new MultiSelectList(vendor.VendorAddresses.Select(a => new { TypeCode = a.TypeCode, Name = string.Format("{0} ({1}, {2}, {3} {4})", a.Name, a.Line1, a.City, a.State, a.Zip) }).ToList(), "TypeCode", "Name") : new MultiSelectList(new List<VendorAddress>(), "TypeCode", "Name"); var viewModel = new WorkgroupVendorViewModel { WorkgroupVendor = workgroupVendor ?? new WorkgroupVendor(), Vendor = vendor, VendorAddress = vendorAddress, //Vendors = vendorRepository.Queryable.OrderBy(a => a.Name).ToList(), VendorAddresses = addresses, NewVendor = newVendor }; if(viewModel.WorkgroupVendor.VendorId != null && string.IsNullOrWhiteSpace(viewModel.WorkgroupVendor.Name)) { var locVendor = vendorRepository.Queryable.First(a => a.Id == viewModel.WorkgroupVendor.VendorId); if(locVendor != null) { viewModel.WorkgroupVendor.Name = locVendor.Name; } } return viewModel; }
public void TestTransferValuesWhenNotKfsVendor() { #region Arrange var vendors = new List <Vendor>(); vendors.Add(CreateValidEntities.Vendor(1)); vendors[0].Name = "VendorName1"; vendors[0].SetIdTo("1"); new FakeVendors(0, VendorRepository, vendors, true); var vendorAddress = new List <VendorAddress>(); vendorAddress.Add(CreateValidEntities.VendorAddress(2)); vendorAddress[0].Vendor = VendorRepository.Queryable.Single(a => a.Id == "1"); vendorAddress[0].TypeCode = "2"; vendorAddress[0].Zip = "98765"; vendorAddress[0].Name = "DoesNotMatter"; vendorAddress[0].Line1 = "VaLine1"; vendorAddress[0].Line2 = "VaLine2"; vendorAddress[0].Line3 = "VaLine3"; vendorAddress[0].City = "VaCity1"; vendorAddress[0].State = "AB"; vendorAddress[0].CountryCode = "UK"; vendorAddress[0].PhoneNumber = "333-444-55555"; vendorAddress[0].FaxNumber = "222-444-55555"; new FakeVendorAddresses(0, VendorAddressRepository, vendorAddress, false); var source = CreateValidEntities.WorkgroupVendor(1); source.VendorId = null; source.VendorAddressTypeCode = "2"; source.Phone = "111"; source.Fax = "222"; var destination = new WorkgroupVendor(); #endregion Arrange #region Act WorkgroupService.TransferValues(source, ref destination); #endregion Act #region Assert Assert.AreEqual("Name1", destination.Name); Assert.AreEqual("Line11", destination.Line1); Assert.AreEqual(null, destination.Line2); Assert.AreEqual(null, destination.Line3); Assert.AreEqual("City1", destination.City); Assert.AreEqual("CA", destination.State); Assert.AreEqual("95616", destination.Zip); Assert.AreEqual("US", destination.CountryCode); Assert.AreEqual("111", destination.Phone); Assert.AreEqual("222", destination.Fax); #endregion Assert }
public ActionResult AddNewVendor(int id, WorkgroupVendor workgroupVendor, bool skipAddress) { ViewBag.StepNumber = 9; var workgroup = _workgroupRepository.GetNullableById(id); if (workgroup == null) { Message = "Workgroup not found."; this.RedirectToAction <WorkgroupController>(a => a.Index(false)); } if (skipAddress) { workgroupVendor.Line1 = "N/A"; workgroupVendor.City = "N/A"; workgroupVendor.State = "CA"; workgroupVendor.Zip = "95616"; workgroupVendor.CountryCode = "US"; } var workgroupVendorToCreate = new WorkgroupVendor(); _workgroupService.TransferValues(workgroupVendor, ref workgroupVendorToCreate); workgroupVendorToCreate.Workgroup = workgroup; ModelState.Clear(); workgroupVendorToCreate.TransferValidationMessagesTo(ModelState); if (ModelState.IsValid) { _workgroupVendorRepository.EnsurePersistent(workgroupVendorToCreate); Message = "WorkgroupVendor Created Successfully"; return(this.RedirectToAction(a => a.Vendors(id))); } WorkgroupVendorViewModel viewModel; //var vendor = _vendorRepository.GetNullableById(workgroupVendor.VendorId); //var vendorAddress = _vendorAddressRepository.Queryable.FirstOrDefault(a => a.Vendor == vendor && a.TypeCode == workgroupVendor.VendorAddressTypeCode); viewModel = WorkgroupVendorViewModel.Create(_vendorRepository, workgroupVendorToCreate, null, null, true); return(View(viewModel)); }
public static WorkgroupVendor WorkgroupVendor(int?counter) { var rtValue = new WorkgroupVendor(); rtValue.Workgroup = new Workgroup(); rtValue.VendorId = "VendorId" + counter.Extra(); rtValue.VendorAddressTypeCode = "tc" + counter.Extra(); rtValue.Name = "Name" + counter.Extra(); rtValue.Line1 = "Line1" + counter.Extra(); rtValue.City = "City" + counter.Extra(); rtValue.State = "CA"; rtValue.Zip = "95616"; rtValue.CountryCode = "US"; return(rtValue); }
public static WorkgroupVendor WorkgroupVendor(int? counter) { var rtValue = new WorkgroupVendor(); rtValue.Workgroup = new Workgroup(); rtValue.VendorId = "VendorId" + counter.Extra(); rtValue.VendorAddressTypeCode = "tc" + counter.Extra(); rtValue.Name = "Name" + counter.Extra(); rtValue.Line1 = "Line1" + counter.Extra(); rtValue.City = "City" + counter.Extra(); rtValue.State = "CA"; rtValue.Zip = "95616"; rtValue.CountryCode = "US"; return rtValue; }
public JsonNetResult AddKfsVendor(int workgroupId, string vendorId, string addressTypeCode) { var workgroup = _repositoryFactory.WorkgroupRepository.GetById(workgroupId); var vendor = _vendorRepository.Queryable.Single(a => a.Id == vendorId); var vendorAddress = _vendorAddressRepository.Queryable.First(a => a.Vendor == vendor && a.TypeCode == addressTypeCode); var added = true; var duplicate = false; var wasInactive = false; string errorMessage = null; // just make sure user has access to the workgroup Check.Require(_securityService.HasWorkgroupAccess(workgroup), Resources.NoAccess_Workgroup); var workgroupVendor = new WorkgroupVendor { Workgroup = workgroup, VendorId = vendor.Id, VendorAddressTypeCode = vendorAddress.TypeCode //, //Name = vendor.Name, //Line1 = vendorAddress.Line1, //Line2 = vendorAddress.Line2, //Line3 = vendorAddress.Line3, //City = vendorAddress.City, //State = vendorAddress.State, //Zip = vendorAddress.Zip, //CountryCode = vendorAddress.CountryCode }; var workgroupVendorToCreate = new WorkgroupVendor(); _workgroupService.TransferValues(workgroupVendor, ref workgroupVendorToCreate); //Central location for values that get transferred (Fax, state, etc.) workgroupVendorToCreate.Workgroup = workgroup; if (!_repositoryFactory.WorkgroupVendorRepository.Queryable .Any(a => a.Workgroup.Id == workgroupId && a.VendorId == workgroupVendorToCreate.VendorId && a.VendorAddressTypeCode == workgroupVendorToCreate.VendorAddressTypeCode)) { //doesn't find any var tempModelState = new ModelStateDictionary(); workgroupVendorToCreate.TransferValidationMessagesTo(tempModelState); if (!tempModelState.IsValid) { if (tempModelState.ContainsKey("WorkgroupVendor.Email")) { workgroupVendorToCreate.Email = null; errorMessage = "Warning, Email removed. KFS Vendor's Email was invalid"; } } try { _repositoryFactory.WorkgroupVendorRepository.EnsurePersistent(workgroupVendorToCreate); } catch (Exception) { errorMessage = "An Error occurred while trying to add that vendor to your workgroup."; } added = true; duplicate = false; wasInactive = false; } else { //found one var inactiveVendor = _repositoryFactory.WorkgroupVendorRepository.Queryable .FirstOrDefault(a => a.Workgroup.Id == workgroupId && a.VendorId == workgroupVendorToCreate.VendorId && a.VendorAddressTypeCode == workgroupVendorToCreate.VendorAddressTypeCode && !a.IsActive); if (inactiveVendor != null) { // we found one this is disabled, activate it and return it inactiveVendor.IsActive = true; _repositoryFactory.WorkgroupVendorRepository.EnsurePersistent(inactiveVendor); added = false; duplicate = false; wasInactive = true; return(new JsonNetResult(new { id = inactiveVendor.Id, name = inactiveVendor.Name, added, duplicate, wasInactive, errorMessage })); } // there was an active duplicate, return the first one. workgroupVendorToCreate = _repositoryFactory.WorkgroupVendorRepository.Queryable .First(a => a.Workgroup.Id == workgroupId && a.VendorId == workgroupVendorToCreate.VendorId && a.VendorAddressTypeCode == workgroupVendorToCreate.VendorAddressTypeCode && a.IsActive); added = false; duplicate = true; wasInactive = false; } return(new JsonNetResult(new { id = workgroupVendorToCreate.Id, name = workgroupVendorToCreate.Name, added, duplicate, wasInactive, errorMessage })); }
public void TestTransferValuesWhenNotKfsVendor() { #region Arrange var vendors = new List<Vendor>(); vendors.Add(CreateValidEntities.Vendor(1)); vendors[0].Name = "VendorName1"; vendors[0].SetIdTo("1"); new FakeVendors(0, VendorRepository, vendors, true); var vendorAddress = new List<VendorAddress>(); vendorAddress.Add(CreateValidEntities.VendorAddress(2)); vendorAddress[0].Vendor = VendorRepository.Queryable.Single(a => a.Id == "1"); vendorAddress[0].TypeCode = "2"; vendorAddress[0].Zip = "98765"; vendorAddress[0].Name = "DoesNotMatter"; vendorAddress[0].Line1 = "VaLine1"; vendorAddress[0].Line2 = "VaLine2"; vendorAddress[0].Line3 = "VaLine3"; vendorAddress[0].City = "VaCity1"; vendorAddress[0].State = "AB"; vendorAddress[0].CountryCode = "UK"; vendorAddress[0].PhoneNumber = "333-444-55555"; vendorAddress[0].FaxNumber = "222-444-55555"; new FakeVendorAddresses(0, VendorAddressRepository, vendorAddress, false); var source = CreateValidEntities.WorkgroupVendor(1); source.VendorId = null; source.VendorAddressTypeCode = "2"; source.Phone = "111"; source.Fax = "222"; var destination = new WorkgroupVendor(); #endregion Arrange #region Act WorkgroupService.TransferValues(source, ref destination); #endregion Act #region Assert Assert.AreEqual("Name1", destination.Name); Assert.AreEqual("Line11", destination.Line1); Assert.AreEqual(null, destination.Line2); Assert.AreEqual(null, destination.Line3); Assert.AreEqual("City1", destination.City); Assert.AreEqual("CA", destination.State); Assert.AreEqual("95616", destination.Zip); Assert.AreEqual("US", destination.CountryCode); Assert.AreEqual("111", destination.Phone); Assert.AreEqual("222", destination.Fax); #endregion Assert }
public void TestTransferValuesWhenKfsVendorHasNullZip() { #region Arrange var vendors = new List<Vendor>(); vendors.Add(CreateValidEntities.Vendor(1)); vendors[0].SetIdTo("1"); new FakeVendors(0, VendorRepository, vendors, true); var vendorAddress = new List<VendorAddress>(); vendorAddress.Add(CreateValidEntities.VendorAddress(2)); vendorAddress[0].Vendor = VendorRepository.Queryable.Single(a => a.Id == "1"); vendorAddress[0].TypeCode = "2"; vendorAddress[0].Zip = null; new FakeVendorAddresses(0, VendorAddressRepository, vendorAddress, false); var source = CreateValidEntities.WorkgroupVendor(1); source.VendorId = "1"; source.VendorAddressTypeCode = "2"; var destination = new WorkgroupVendor(); Assert.AreNotEqual(destination.Zip, "XXXXX"); #endregion Arrange #region Act WorkgroupService.TransferValues(source, ref destination); #endregion Act #region Assert Assert.AreEqual("XXXXX", destination.Zip); #endregion Assert }
/* * Demo Data */ private static void InsertDemoData(ISession session) { // create the users var admin = new User("anlai") { FirstName = "Alan", LastName = "Lai", Email = "*****@*****.**", IsActive = true }; var user1 = new User("pjfry") { FirstName = "Philip", LastName = "Fry", Email = "*****@*****.**", IsActive = true }; var user2 = new User("hsimpson") { FirstName = "Homer", LastName = "Simpson", Email="*****@*****.**", IsActive = true}; var user3 = new User("brannigan") { FirstName = "Zapp", LastName = "Brannigan", Email = "*****@*****.**", IsActive = true }; var user4 = new User("awong") { FirstName = "Amy", LastName = "Wong", Email = "*****@*****.**", IsActive = true }; var user5 = new User("zoidberg") { FirstName = "John", LastName = "Zoidberg", Email = "*****@*****.**", IsActive = true }; var user6 = new User("moe") { FirstName = "Moe", LastName = "Szyslak", Email = "*****@*****.**", IsActive = true }; var user7 = new User("burns") { FirstName = "Monty", LastName = "Burns", Email = "*****@*****.**", IsActive = true }; var user8 = new User("flanders") { FirstName = "Ned", LastName = "Flanders", Email = "*****@*****.**", IsActive = true }; var user9 = new User("grimes") { FirstName = "Frank", LastName = "Grimes", Email = "*****@*****.**", IsActive = true }; var user10 = new User("bender") { FirstName = "Bender", LastName = "Rodriguez", Email = "*****@*****.**", IsActive = true }; // setup the workgroup var org1 = session.Load<Organization>("APLS"); var org2 = session.Load<Organization>("AINF"); var org3 = session.Load<Organization>("ACRU"); var orgset1 = new List<Organization>(); orgset1.Add(org1); orgset1.Add(org2); var orgset2 = new List<Organization>(); orgset2.Add(org2); orgset2.Add(org3); var workgroup = new Workgroup() { Name = "Legitimate Workgroup, Not a Front", IsActive = true, PrimaryOrganization = org1, Organizations = orgset1}; var acct1 = session.Load<Account>("3-APSAC37"); var acct2 = session.Load<Account>("3-APSM170"); var acct3 = session.Load<Account>("3-APSRSTR"); // has sub account var acct4 = session.Load<Account>("3-APSM152"); // has sub account var acct5 = session.Load<Account>("3-APSM326"); // has sub account workgroup.AddAccount(new WorkgroupAccount() { Account = acct1 }); workgroup.AddAccount(new WorkgroupAccount() { Account = acct3 }); workgroup.AddAccount(new WorkgroupAccount() { Account = acct5 }); workgroup.AddAccount(new WorkgroupAccount() { Account = acct2 }); workgroup.AddAccount(new WorkgroupAccount() { Account = acct4 }); var vendor1 = session.Load<Vendor>("0000247673"); var vendoraddr1 = session.QueryOver<VendorAddress>().Where(a => a.Vendor == vendor1).Take(1).SingleOrDefault(); var wv1 = new WorkgroupVendor() { VendorId = vendor1.Id, VendorAddressTypeCode = vendoraddr1.TypeCode, Name = vendor1.Name, Line1 = vendoraddr1.Line1, City = vendoraddr1.City, State = vendoraddr1.State, Zip = vendoraddr1.Zip, CountryCode = vendoraddr1.CountryCode }; workgroup.AddVendor(wv1); var vendor2 = session.Load<Vendor>("0000008573"); var vendoraddr2 = session.QueryOver<VendorAddress>().Where(a => a.Vendor == vendor2).Take(1).SingleOrDefault(); var wv2 = new WorkgroupVendor(){VendorId = vendor2.Id, VendorAddressTypeCode = vendoraddr2.TypeCode, Name = vendor2.Name, Line1 = vendoraddr2.Line1, City = vendoraddr2.City, State = vendoraddr2.State, Zip = vendoraddr2.Zip, CountryCode = vendoraddr2.CountryCode}; workgroup.AddVendor(wv2); var vendor3 = session.Load<Vendor>("0000006849"); var vendoraddr3 = session.QueryOver<VendorAddress>().Where(a => a.Vendor == vendor2).Take(1).SingleOrDefault(); var wv3 = new WorkgroupVendor(){VendorId = vendor3.Id, VendorAddressTypeCode = vendoraddr3.TypeCode, Name = vendor3.Name, Line1 = vendoraddr3.Line1, City = vendoraddr3.City, State = vendoraddr3.State, Zip = vendoraddr3.Zip, CountryCode = vendoraddr3.CountryCode}; workgroup.AddVendor(wv3); var wv4 = new WorkgroupVendor() { Name = "Legitimate Paper Mill", Line1 = "1 Fake Street.", City = "Davis", State = "CA", Zip = "95616", CountryCode = "US" }; workgroup.AddVendor(wv4); var wv5 = new WorkgroupVendor() { Name = "Office Supplies", Line1 = "2 Fake Street.", City = "Davis", State = "CA", Zip = "95616", CountryCode = "US" }; workgroup.AddVendor(wv5); var wv6 = new WorkgroupVendor() { Name = "Loads O Lab Equipment", Line1 = "5 Fake Street.", City = "Davis", State = "CA", Zip = "95616", CountryCode = "US" }; workgroup.AddVendor(wv6); var addr1 = new WorkgroupAddress() { Name = "128 Fake Hall", Address = "Fake Hall Road", City = "Davis", State = "CA", Zip = "95616" }; workgroup.AddAddress(addr1); var addr2 = new WorkgroupAddress() { Name = "10 Fake Hall", Address = "Fake Hall Road", City = "Davis", State = "CA", Zip = "95616"}; workgroup.AddAddress(addr2); var addr3 = new WorkgroupAddress() { Name = "526 Fake Hall", Address = "Fake Hall Road", City = "Davis", State = "CA", Zip = "95616" }; workgroup.AddAddress(addr3); //setup workgroup permissions var permission1 = new WorkgroupPermission() { User = user1, Workgroup = workgroup, Role = session.Load<Role>("RQ") }; var permission2 = new WorkgroupPermission() { User = user2, Workgroup = workgroup, Role = session.Load<Role>("AP") }; var permission3 = new WorkgroupPermission() { User = user3, Workgroup = workgroup, Role = session.Load<Role>("AM") }; var permission4 = new WorkgroupPermission() { User = user4, Workgroup = workgroup, Role = session.Load<Role>("PR") }; //var permission5 = new WorkgroupPermission() { User = user5, Workgroup = workgroup, Role = session.Load<Role>("CA") }; // conditional approver var permission6 = new WorkgroupPermission() { User = user6, Workgroup = workgroup, Role = session.Load<Role>("RQ") }; var permission7 = new WorkgroupPermission() { User = user7, Workgroup = workgroup, Role = session.Load<Role>("AP") }; var permission8 = new WorkgroupPermission() { User = user8, Workgroup = workgroup, Role = session.Load<Role>("AM") }; var permission9 = new WorkgroupPermission() { User = user9, Workgroup = workgroup, Role = session.Load<Role>("PR") }; var permission10 = new WorkgroupPermission() { User = user10, Workgroup = workgroup, Role = session.Load<Role>("RQ") }; workgroup.AddPermission(permission1); workgroup.AddPermission(permission2); workgroup.AddPermission(permission3); workgroup.AddPermission(permission4); //workgroup.AddPermission(permission5); workgroup.AddPermission(permission6); workgroup.AddPermission(permission7); workgroup.AddPermission(permission8); workgroup.AddPermission(permission9); workgroup.AddPermission(permission10); // create some conditional approvals var ca1 = new ConditionalApproval() {Workgroup = workgroup, PrimaryApprover = user5, Question = "Is this an IT purchaser?"}; // save all the objects session.Save(admin); session.Save(user1); session.Save(user2); session.Save(user3); session.Save(user4); session.Save(user5); session.Save(user6); session.Save(user7); session.Save(user8); session.Save(user9); session.Save(user10); session.Save(workgroup); session.Save(ca1); // generate a minimum of 10 for our target user for (var i = 0; i < 5; i++) { var order = GenderateRandomOrder(workgroup, session.Load<OrderStatusCode>("AP"), session, permission1); session.Save(order); } for (var i = 0; i < 5; i++) { var order = GenderateRandomOrder(workgroup, session.Load<OrderStatusCode>("AM"), session, permission1); session.Save(order); } for (var i = 0; i < 3; i++) { var order = GenderateRandomOrder(workgroup, session.Load<OrderStatusCode>("PR"), session, permission1); session.Save(order); } for (var i = 0; i < 2; i++) { var order = GenderateRandomOrder(workgroup, session.Load<OrderStatusCode>("CN"), session, permission1, excludeUser:permission1); session.Save(order); } // now generate another random 50 orders for (var i = 0; i < 50; i++) { var status = session.QueryOver<OrderStatusCode>().Skip(_random.Next()%4).Take(1).SingleOrDefault(); var order = GenderateRandomOrder(workgroup, status, session, excludeUser:permission1); session.Save(order); } }
/* * Dev Data */ private static void InsertData(ISession session) { //Now insert new data var scott = new User("postit") { FirstName = "Scott", LastName = "Kirkland", Email = "*****@*****.**", IsActive = true }; var approverUser = new User("approver") { FirstName = "Approver", LastName = "Approver", Email = "*****@*****.**", IsActive = true }; var acctMgrUser = new User("acctmgr") { FirstName = "Account", LastName = "Manager", Email = "*****@*****.**", IsActive = true }; var alan = new User("anlai") { FirstName = "Alan", LastName = "Lai", Email = "*****@*****.**", IsActive = true }; var ken = new User("taylorkj") { FirstName = "Ken", LastName = "Taylor", Email = "*****@*****.**", IsActive = true }; var chris = new User("cthielen") { FirstName = "Christopher", LastName = "Thielen", Email = "*****@*****.**", IsActive = true }; var scottd = new User("sadyer") { FirstName = "Scott", LastName = "Dyer", Email = "*****@*****.**", IsActive = true }; var jscub = new User("jscub") { FirstName = "James", LastName = "Cubbage", Email = "*****@*****.**", IsActive = true }; var jsylvest = new User("jsylvest") { FirstName = "Jason", LastName = "Sylvestre", Email = "*****@*****.**", IsActive = true }; var admin = session.Load<Role>("AD"); var deptAdmin = session.Load<Role>("DA"); var user = session.Load<Role>("RQ"); var approver = session.Load<Role>("AP"); var acctMgr = session.Load<Role>("AM"); var purchaser = session.Load<Role>("PR"); scott.Organizations.Add(session.Load<Organization>("AANS")); scott.Organizations.Add(session.Load<Organization>("AAES")); ken.Organizations.Add(session.Load<Organization>("AANS")); ken.Organizations.Add(session.Load<Organization>("ABAE")); scottd.Organizations.Add(session.Load<Organization>("AANS")); scottd.Organizations.Add(session.Load<Organization>("AAES")); scottd.Organizations.Add(session.Load<Organization>("AFST")); chris.Organizations.Add(session.Load<Organization>("AANS")); chris.Organizations.Add(session.Load<Organization>("AAES")); chris.Organizations.Add(session.Load<Organization>("AFST")); jscub.Organizations.Add(session.Load<Organization>("AFST")); jscub.Organizations.Add(session.Load<Organization>("AAES")); jsylvest.Organizations.Add(session.Load<Organization>("AFST")); jsylvest.Organizations.Add(session.Load<Organization>("AAES")); alan.Organizations.Add(session.Load<Organization>("AANS")); alan.Organizations.Add(session.Load<Organization>("AAES")); var testWorkgroup = new Workgroup() { Name = "Test Workgroup", IsActive = true, }; var workGroupAccount = new WorkgroupAccount() { }; workGroupAccount.Account = session.Load<Account>("3-6851000"); testWorkgroup.AddAccount(workGroupAccount); var workgroupAccountWithUsers = new WorkgroupAccount { Account = session.Load<Account>("3-APSO013"), Approver = approverUser, AccountManager = acctMgrUser }; testWorkgroup.AddAccount(workgroupAccountWithUsers); testWorkgroup.PrimaryOrganization = session.Load<Organization>("AAES"); testWorkgroup.Organizations.Add(session.Load<Organization>("AAES")); testWorkgroup.Organizations.Add(session.Load<Organization>("APLS")); // Add a vendor to the test workgroup var testWorkgroupVendor = new WorkgroupVendor { Name = "Office Max Corp.", City = "Sacramento", CountryCode = "US", Line1 = "3 1/2 External Drive",// (get it?) State = "CA", Zip = "95616" }; var testWorkgroupVendor2 = new WorkgroupVendor { Name = "Manually Added Vendor Corp.", City = "Sacramento", CountryCode = "US", Line1 = "5 1/4 External Drive",// (get it?) State = "CA", Zip = "95816" }; testWorkgroup.AddVendor(testWorkgroupVendor); testWorkgroup.AddVendor(testWorkgroupVendor2); var testWorkgroupAddress = new WorkgroupAddress() { Name = "The Office", Address = "One Shields Ave", Building = "Mrak", City = "Davis", State = "CA", Zip = "95616", IsActive = true }; testWorkgroup.AddAddress(testWorkgroupAddress); var workgroupPerm = new WorkgroupPermission() { User = scott, Role = deptAdmin, Workgroup = testWorkgroup }; var workgroupPerm2 = new WorkgroupPermission() { User = jsylvest, Role = deptAdmin, Workgroup = testWorkgroup }; var workgroupPerm3 = new WorkgroupPermission() { User = jsylvest, Role = user, Workgroup = testWorkgroup }; var workgroupPerm4 = new WorkgroupPermission() { User = jscub, Role = deptAdmin, Workgroup = testWorkgroup }; var workgroupPerm5 = new WorkgroupPermission() { User = alan, Role = deptAdmin, Workgroup = testWorkgroup }; var workgroupPerm6 = new WorkgroupPermission() { User = chris, Role = acctMgr, Workgroup = testWorkgroup }; var workgroupPerm7 = new WorkgroupPermission() { User = scott, Role = approver, Workgroup = testWorkgroup }; var workgroupPerm8 = new WorkgroupPermission() { User = alan, Role = approver, Workgroup = testWorkgroup }; var shippingType = session.Load<ShippingType>("ST"); var orderType = session.Load<Role>("OR"); var autoApproval = new AutoApproval //Approve anything scott sends to alan under $1000 for the next 2 years { TargetUser = scott, User = alan, IsActive = true, Expiration = DateTime.Now.AddYears(2), LessThan = true, MaxAmount = 1000.00M }; var autoApprovalAccount = new AutoApproval //Approve anything from account 3-APSO013 associated with approverUser under $1000 for 2 years { Account = session.Load<Account>("3-APSO013"), User = approverUser, IsActive = true, Expiration = DateTime.Now.AddYears(2), LessThan = true, MaxAmount = 1000.00M }; session.Save(testWorkgroup); session.Save(scott); session.Save(alan); session.Save(ken); session.Save(jscub); session.Save(chris); session.Save(scottd); session.Save(jsylvest); session.Save(approverUser); session.Save(acctMgrUser); session.Save(workgroupPerm); session.Save(workgroupPerm2); session.Save(workgroupPerm3); session.Save(workgroupPerm4); session.Save(workgroupPerm5); session.Save(workgroupPerm6); session.Save(workgroupPerm7); session.Save(workgroupPerm8); session.Save(autoApproval); session.Save(autoApprovalAccount); Roles.AddUsersToRole(new[] { "postit", "anlai", "cthielen" }, "AD"); Roles.AddUserToRole("anlai", "RQ"); Roles.AddUserToRole("anlai", "DA"); Roles.AddUserToRole("anlai", "AP"); Roles.AddUserToRole("taylorkj", "DA"); Roles.AddUserToRole("postit", "DA"); Roles.AddUserToRole("jscub", "DA"); Roles.AddUserToRole("jsylvest", "DA"); session.Flush(); //Flush out the changes }
public static WorkgroupVendorViewModel Create(IRepositoryWithTypedId <Vendor, string> vendorRepository, WorkgroupVendor workgroupVendor = null, Vendor vendor = null, VendorAddress vendorAddress = null, bool?newVendor = null) { Check.Require(vendorRepository != null, "Repository must be supplied"); var addresses = vendor != null ? new MultiSelectList(vendor.VendorAddresses.Select(a => new { TypeCode = a.TypeCode, Name = string.Format("{0} ({1}, {2}, {3} {4})", a.Name, a.Line1, a.City, a.State, a.Zip) }).ToList(), "TypeCode", "Name") : new MultiSelectList(new List <VendorAddress>(), "TypeCode", "Name"); var viewModel = new WorkgroupVendorViewModel { WorkgroupVendor = workgroupVendor ?? new WorkgroupVendor(), Vendor = vendor, VendorAddress = vendorAddress, //Vendors = vendorRepository.Queryable.OrderBy(a => a.Name).ToList(), VendorAddresses = addresses, NewVendor = newVendor }; if (viewModel.WorkgroupVendor.VendorId != null && string.IsNullOrWhiteSpace(viewModel.WorkgroupVendor.Name)) { var locVendor = vendorRepository.Queryable.First(a => a.Id == viewModel.WorkgroupVendor.VendorId); if (locVendor != null) { viewModel.WorkgroupVendor.Name = locVendor.Name; } } return(viewModel); }
public ActionResult AddVendor(int workgroupId, WorkgroupVendor vendor) { var workgroup = _repositoryFactory.WorkgroupRepository.GetById(workgroupId); Check.Require(_securityService.HasWorkgroupAccess(workgroup)); var modelState = new ModelStateDictionary(); vendor.Workgroup = workgroup; vendor.TransferValidationMessagesTo(modelState); if (!modelState.IsValid) { return Json(new {success = false}); } workgroup.AddVendor(vendor); _repositoryFactory.WorkgroupRepository.EnsurePersistent(workgroup); return Json(new { id = vendor.Id, success = true }); }
public ActionResult AddKfsVendor(int id, WorkgroupVendor workgroupVendor) { ViewBag.StepNumber = 9; var workgroup = _workgroupRepository.GetNullableById(id); if (workgroup == null) { Message = "Workgroup not found."; this.RedirectToAction <WorkgroupController>(a => a.Index(false)); } var workgroupVendorToCreate = new WorkgroupVendor(); _workgroupService.TransferValues(workgroupVendor, ref workgroupVendorToCreate); workgroupVendorToCreate.Workgroup = workgroup; ModelState.Clear(); //workgroupVendorToCreate.TransferValidationMessagesTo(ModelState); if (string.IsNullOrWhiteSpace(workgroupVendorToCreate.VendorId)) { ModelState.AddModelError("WorkgroupVendor.VendorId", "Please select a Kfs Vendor"); } if (string.IsNullOrWhiteSpace(workgroupVendorToCreate.VendorAddressTypeCode)) { ModelState.AddModelError("WorkgroupVendor.VendorAddressTypeCode", "Please select a Vendor Address"); } if (ModelState.IsValid) { workgroupVendorToCreate.TransferValidationMessagesTo(ModelState); if (ModelState.ContainsKey("WorkgroupVendor.Email")) { //Message = "Vendor Email is invalid"; workgroupVendorToCreate.Email = null; ModelState.Clear(); //workgroupVendorToCreate.TransferValidationMessagesTo(ModelState); Note: Not checking this again so it *WILL* throw an exception that can be investigated. } } if (ModelState.IsValid) { if (_workgroupVendorRepository.Queryable .Any(a => a.Workgroup.Id == id && a.VendorId == workgroupVendorToCreate.VendorId && a.VendorAddressTypeCode == workgroupVendorToCreate.VendorAddressTypeCode && a.IsActive)) { Message = "KFS vendor has already been added"; return(this.RedirectToAction(a => a.Vendors(id))); } var inactiveKfsVendor = _workgroupVendorRepository.Queryable .FirstOrDefault(a => a.Workgroup.Id == id && a.VendorId == workgroupVendorToCreate.VendorId && a.VendorAddressTypeCode == workgroupVendorToCreate.VendorAddressTypeCode && !a.IsActive); if (inactiveKfsVendor != null) { inactiveKfsVendor.IsActive = true; _workgroupVendorRepository.EnsurePersistent(inactiveKfsVendor); Message = "KFS vendor added back. It was previously deleted from this workgroup."; return(this.RedirectToAction(a => a.Vendors(id))); } _workgroupVendorRepository.EnsurePersistent(workgroupVendorToCreate); Message = "WorkgroupVendor Created Successfully"; return(this.RedirectToAction(a => a.Vendors(id))); } ErrorMessage = "Please correct errors before continuing, of skip this step."; WorkgroupVendorViewModel viewModel; viewModel = WorkgroupVendorViewModel.Create(_vendorRepository, workgroupVendorToCreate, newVendor: true); return(View(viewModel)); }