public ActionResult Edit(CustomerViewModel vmChanged, string redirectButton) { var vm = GetViewModelFromTempData<CustomerViewModel>(); vm.ApplyFormAttributes(vmChanged.Model); return StoreEntity(vm, redirectButton); }
public ActionResult Create(CustomerViewModel vmChanged, string redirectButton) { var vm = GetViewModelFromTempData<CustomerViewModel>() ?? new CustomerViewModel(new CustomerDTO(), null, true); vm.DisplayName = Strings.CustomerViewModel_DisplayName; vm.ApplyFormAttributes(vmChanged.Model); return StoreEntity(vm, redirectButton); }
public void State_Binder_Binds_To_State_Property() { var SaveButton = new Button(); var Binding = new Binding(); var vm = new CustomerViewModel {FirstName = "John Doe", State = EditState.Edit}; var StateBinder = new StateGroupBinder<EditState>(SaveButton, Button.IsEnabledProperty, p=> vm.State, Binding); Assert.AreEqual("State", Binding.Path); }
public void Control_Is_Updated_When_State_Changes() { var SaveButton = new Button(); var Binding = new Binding(); var vm = new CustomerViewModel { FirstName = "John Doe", State = EditState.Edit }; var StateGroupBinder = new StateGroupBinder<EditState>(SaveButton, Button.IsEnabledProperty, p => vm.State, Binding); vm.State = EditState.Edit; }
void EndLoginGetID(IAsyncResult result) { var custID = UserService.EndLoginGetID(result); CustomerViewModel vm = new CustomerViewModel(custID); Deployment.Current.Dispatcher.BeginInvoke(() => { NavigationService.Navigate(new Uri("/Pages/CustomerPage.xaml", UriKind.Relative)); (App.Current.RootVisual as PhoneApplicationFrame).DataContext = vm; }); }
public ActionResult Add(CustomerViewModel vm) { if (!ModelState.IsValid) { return View(vm); } CommandStackWorkerService.AddCustomer(vm); return RedirectToAction("Index"); }
public ActionResult Create(CustomerViewModel model, HttpPostedFileBase upload) { if (!ModelState.IsValid) { //var availableCustomers = Mapper.Map<IEnumerable<SelectListItem>>(_customerService.GetCustomers()); //model.AvailableCustomers = availableCustomers; //return View(model); } _customerService.Value.CreateCustomer(Mapper.Map<Customer>(model)); return RedirectToAction("Index"); }
public SimpleMvvm_iOSViewController(IntPtr handle) : base(handle) { // Create binding context this.CreateBindingContext(); // Create view model with service agent ICustomerServiceAgent serviceAgent = new MockCustomerServiceAgent(); // Assign view model to the data context DataContext = new CustomerViewModel(serviceAgent); }
public ActionResult Create(CustomerViewModel viewmodel) { if (SaveObject<Customer>(viewmodel.ModelObject, false)) { return RedirectToAction("Index"); } else { ViewData.Model = viewmodel; return View(); } }
public void TestCustomerViewModel() { CustomerViewModel customerViewModel = new CustomerViewModel(); customerViewModel.Service = serviceFacade; CustomerListDTO customer = new CustomerListDTO() {Id = 1}; IList<CustomerListDTO> customers = new List<CustomerListDTO>() {customer}; Expect.Once.On(serviceFacade).Method("GetAllCustomers").Will(Return.Value(customers)); customerViewModel.LoadCommand.Command.Execute(null); Assert.AreEqual<int>(1, customerViewModel.Items.Count); Assert.AreEqual(customer, customerViewModel.SelectedItem); Assert.AreEqual(Strings.CustomerViewModel_DisplayName, customerViewModel.DisplayName); }
public static void UpdateCustomer(this Customer customer, CustomerViewModel customerVm) { customer.FirstName = customerVm.FirstName; customer.LastName = customerVm.LastName; customer.IdentityCard = customerVm.IdentityCard; customer.Mobile = customerVm.Mobile; customer.DateOfBirth = customerVm.DateOfBirth; customer.Email = customerVm.Email; customer.UniqueKey = (customerVm.UniqueKey == null || customerVm.UniqueKey == Guid.Empty) ? Guid.NewGuid() : customerVm.UniqueKey; customer.RegistrationDate = (customer.RegistrationDate == DateTime.MinValue ? DateTime.Now : customerVm.RegistrationDate); }
public ActionResult Create(CustomerViewModel customerViewModel) { if (ModelState.IsValid) { var addCustomerCommand = new AddCustomerCommand(); Mapper.CreateMap<CustomerViewModel, AddCustomerCommand>().BeforeMap((s, d) => d.Password = s.ConfirmPassword); Mapper.Map(customerViewModel, addCustomerCommand); CommandProcessor.Process<AddCustomerCommand, CommandResult>(addCustomerCommand, ModelState); if (!ModelState.IsValid) return View(); return this.RedirectToAction(c => c.Index(null, null)); } return View(); }
public CustomerViewModel ConvertToViewModelFromCustomer(Customer customer) { var customerViewModel = new CustomerViewModel(); customerViewModel.Address = customer.Address; customerViewModel.CustomerID = customer.CustomerId; customerViewModel.FirstName = customer.FirstName; customerViewModel.LastName = customer.LastName; customerViewModel.Mobile = customer.Mobile; customerViewModel.UserPass = customer.UserPass; customerViewModel.ConfirmUserPass = customer.UserPass; customerViewModel.UserName = customer.UserName; customerViewModel.Email = customer.Email; customerViewModel.ConfirmEmailAddress = customer.Email; customerViewModel.DateOfBirth = customer.DateOfBirth; return customerViewModel; }
public void CUSTOMER_NAME_CHANGE_PROPAGATES_PROPERTY_CHANGED_TO_VIEWMODEL() { bool isPropagatedSuccessfully = false; var vm = new CustomerViewModel(); vm.Customer = Customer.CreateNew(); vm.PropertyChanged += (s, e) => { isPropagatedSuccessfully = true; }; //Change Customer's property that should trigger above handler. vm.Customer.Name = "newnameheredudeq32451"; Assert.IsTrue(isPropagatedSuccessfully); }
public Customer ConvertToCustomerFromViewModel(CustomerViewModel customerViewModel) { Customer customer = new Customer { Address = customerViewModel.Address, CustomerId = customerViewModel.CustomerID, Email = customerViewModel.Email, FirstName = customerViewModel.FirstName, LastName = customerViewModel.LastName, Mobile = customerViewModel.Mobile, UserName = customerViewModel.UserName, UserPass = customerViewModel.UserPass, DateOfBirth = customerViewModel.DateOfBirth }; return customer; }
public void TestLoadAccounts() { //Given CustomerViewModel vm = new CustomerViewModel(); WCFAccountService accountService = _mocks.StrictMock<WCFAccountService>(); vm.AccountService = accountService; //create the individualcustomer CustomerDto customer = new CustomerDto() { Id = 1 }; vm.Customer = customer; //When vm.LoadAccounts(); //Then Assert.IsTrue(vm.InProgress); }
public ActionResult Create(CustomerViewModel vm) { try { Customer cust = new Customer { FirstName = vm.FirstName, LastName = vm.LastName, PhoneNumber = vm.PhoneNumber }; _repo.Save(cust); return RedirectToAction("Index"); } catch { return View(); } }
public static void AddCustomer(CustomerViewModel vm) { IoCServiceLocator.Bus.Send( new CreateCustomerCommand( Guid.NewGuid(), 0, vm.FirstName, vm.LastName, vm.IdCard, vm.IdNumber, vm.Dob, vm.Email, vm.Phone, vm.Street, vm.ZIP, vm.Hausnumber, vm.City, vm.State)); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Initialize binding setup BindingSetup.Instance.Initlialize(ApplicationContext); // Create service agent and view model ICustomerServiceAgent serviceAgent = new MockCustomerServiceAgent(); var customerViewModel = new CustomerViewModel(serviceAgent); // Create binding context, passing view model _bindingContext = new MvxAndroidBindingContext(this, this, customerViewModel); // Create view by inflating binding on binding context var view = _bindingContext.BindingInflate(Resource.Layout.Main, null); // Set content view passing inflated view with bindings SetContentView(view); }
public HttpResponseMessage Register(HttpRequestMessage request, CustomerViewModel customer) { return CreateHttpResponse( request , () => { var response = default(HttpResponseMessage); if (!ModelState.IsValid) { response = request.CreateResponse(HttpStatusCode.BadRequest , ModelState.Keys.SelectMany(k => ModelState[k].Errors).Select(m => m.ErrorMessage).ToArray()); } else { if (this.customersRepository.UserExists(customer.Email, customer.IdentityCard)) { ModelState.AddModelError("Invalid user", "Email or Identity Card number already exists"); response = request.CreateResponse(HttpStatusCode.BadRequest , ModelState.Keys.SelectMany(k => ModelState[k].Errors).Select(m => m.ErrorMessage).ToArray()); } else { var newCustomer = new Customer(); newCustomer.UpdateCustomer(customer); customersRepository.Add(newCustomer); this.unitOfWork.Commit(); // Update view model customer = Mapper.Map<Customer, CustomerViewModel>(newCustomer); response = request.CreateResponse<CustomerViewModel>(HttpStatusCode.Created, customer); } } return response; }); }
public void TestEndLoadAccounts() { //Given WCFAccountService accountService = _mocks.StrictMock<WCFAccountService>(); IAsyncResult result = _mocks.Stub<IAsyncResult>(); CustomerViewModel vm = new CustomerViewModel(); vm.AccountService = accountService; //mock the collection returned by ThirdPartyService AccountDto account = new AccountDto { Balance = 100, BalanceDate = DateTime.Now, Id = 1, Title = "Account 1", Number = "123" }; List<AccountDto> accounts = new List<AccountDto>(); accounts.Add(account); Expect.Call(accountService.EndGetAccountsByCustomer(result)).Return(accounts); _mocks.ReplayAll(); //When vm.EndLoadAccounts(result); Assert.IsFalse(vm.InProgress); Assert.Equals(vm.Accounts.Count, accounts.Count); }
public async Task <IActionResult> PutCustomer(CustomerViewModel customer) { return(!ModelState.IsValid ? CustomResponse() : CustomResponse(await _customerAppService.Update(customer))); }
public void Edit(CustomerViewModel viewModel) { _repository.Edit(viewModel.ToCustomerEntity()); _repository.Save(); }
// GET: CustomerController/Delete/5 public ActionResult Delete(int id) { CustomerViewModel customerViewModel = _buisnessLogicClass.GetCustomerVMByID(id); return(View(customerViewModel)); }
public ActionResult Update(CustomerViewModel vm) { try { // Grab the customer var customer = _repo.GetCustomerById(vm.CustomerId); TryUpdateModel(customer, "", new[] { "CompanyName", "ContactName", "ContactTitle", "ContactEmail", "Phone", "Address", "City", "Region", "PostalCode", "Country" }); // Invalid model state, return if (!ModelState.IsValid) { return View("Edit",vm); } // Send the customer up twoards the repo _repo.EditCustomer(customer); // Alert Success("The Customer has been modified"); // Redirect back to list return RedirectToAction("Index"); } catch (CustomerNotFoundException) { Danger("The Customer in your Customer edit request does not exist"); } catch (CompanyAlreadyExistsException) { Danger("You cannot use that Company, another Company is using it"); return View("Edit", vm); } // If we made it here, return to oops with errors return RedirectToAction("Oops", "Home"); }
public void AddCustomer(CustomerViewModel cms) { _customerRepository.AddCustomer(cms); }
public MainPage() { m_cusViewModel = new CustomerViewModel(); this.InitializeComponent(); CustomerGridView.DataContext = m_cusViewModel; }
private bool Equals(CustomerViewModel customerViewModel) => CustomerID == customerViewModel.CustomerID && City == customerViewModel.City && Views.SequenceEqual(customerViewModel.Views);
public DeleteCustomerMessage(CustomerViewModel customer) { Customer = customer; }
public static TTarget MapTo <TTarget>(this CustomerViewModel source) where TTarget : Customer { return(Mapper.Map <CustomerViewModel, TTarget>(source)); }
public CustomerViewModel GetCustomer(int?Id) { CustomerViewModel customersEntitie = Mapper.Map <CustomerViewModel>(_dbContext.Customers.Find(Id)); return(customersEntitie); }
public frmNewCustomer(ICustomer newCustomer, IAddress newAddress) { InitializeComponent(); // set and bind the VM for the customer fields this.viewModel = new CustomerViewModel(newCustomer); this.bindingSource.Add(this.viewModel); // set the VM for the address control addressViewModel = new AddressViewModel(newAddress, newCustomer); this.viewAddressUserControl1.SetProperties(newCustomer, addressViewModel); this.viewAddressUserControl1.SetEditable(true); this.gridOrders.DataBindings.Add("DataSource", this.bindingSource, "Items"); if (Functions.CountryRegion != SupportedCountryRegion.BR) { labelCpfCnpjNumber.Visible = false; textBoxCpfCnpjNumber.Visible = false; } // Set formatter to convert sales status enum to text this.columnOrderStatus.DisplayFormat.Format = new SalesOrderStatusFormatter(); #region Nimbus #region Salutation //dtSalutation = new DataTable(); //dtSalutation.Columns.Add("Name", typeof(String)); //dtSalutation.Columns.Add("Value", typeof(int)); //dtSalutation.Rows.Add("HE", 0); //dtSalutation.Rows.Add("HH", 1); //dtSalutation.Rows.Add("M/S", 2); //dtSalutation.Rows.Add("Mr.", 3); //dtSalutation.Rows.Add("Mrs.", 4); //dtSalutation.Rows.Add("Ms.", 5); //dtSalutation.Rows.Add("Sayyid", 6); //dtSalutation.Rows.Add("Sayyida", 7); //dtSalutation.Rows.Add("Sheikh", 8); //dtSalutation.Rows.Add("Sheikha", 9); //dtSalutation.AcceptChanges(); #endregion #region Gender dtGender = new DataTable(); dtGender.Columns.Add("Name", typeof(String)); dtGender.Columns.Add("Value", typeof(int)); dtGender.Rows.Add("Unknown", 0); dtGender.Rows.Add("Male", 1); dtGender.Rows.Add("Female", 2); dtGender.AcceptChanges(); #endregion #endregion }
private bool SaveCustomer() { try { bool createdLocal = false; bool createdAx = false; string comment = null; string sReligion = null; string sCustClassificationFGrp = null; sReligion = ""; sCustClassificationFGrp = txtCustClassificationGroup.Text; DialogResult prompt = Pos.Customer.Customer.InternalApplication.Services.Dialog.ShowMessage(51148, MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (prompt == System.Windows.Forms.DialogResult.Yes) { IList <Int64> entityKeys = new List <Int64>(); ICustomer tempCustomer = MergeAddress(this.viewModel.Customer, this.addressViewModel.Address); bool isEmptyCustomer = this.viewModel.Customer.IsEmptyCustomer(); sCustTaxGrp = this.addressViewModel.SalesTaxGroup;//added on 300318 // this.isEmptyCustomer is initialized at form load and uses the incoming customer object if (isEmptyCustomer) { if (ValidateControls()) // nimbus // Attempt to save in AX { Pos.Customer.Customer.InternalApplication.TransactionServices.NewCustomer(ref createdAx, ref comment, ref tempCustomer, ApplicationSettings.Terminal.StorePrimaryId, ref entityKeys); } tempCustomer.SalesTaxGroup = sCustTaxGrp;//added on 300318 #region Nimbus if (createdAx) { //UpdateRetailCustomerInfo // ReadOnlyCollection<object> containerArray; //DateTime dBirthDate = Convert.ToDateTime("1900/01/01 00:00:00.000"); //DateTime dtMarriageDate = Convert.ToDateTime("1900/01/01 00:00:00.000"); //if (dtDOB.EditValue == null) //{ // dtDOB.EditValue = dBirthDate; //} //if (dtMarriage.EditValue == null) //{ // dtMarriage.EditValue = dtMarriageDate; //} int intRes = 0; if (chkResidence.Checked)// added on 07/12/2015 req by K.Saha { intRes = 1; } else { intRes = 0; } string sCustId = tempCustomer.CustomerId; string sStoreId = ApplicationSettings.Database.StoreID; Pos.Customer.Customer.InternalApplication.TransactionServices.InvokeExtension("UpdateRetailCustomerInfo", sCustId, iSalutation, iGender, //dtDOB.EditValue, sReligion.Trim(), txtOccupation.Text.Trim(), // dtMarriage.EditValue, txtSTD.Text.Trim(), txtMobilePrimary.Text.Trim(), txtMobileSecondary.Text.Trim(), textNationality.Text.Trim(), textCustAgeBracket.Text.Trim(), cmbBMonth.SelectedIndex, txtBDay.Text.Trim(), txtBYear.Text.Trim(), cmbAnnMonth.SelectedIndex, txtAnnDay.Text.Trim(), txtAnnYear.Text.Trim(), sStoreId, intRes, sCustTaxGrp, txtCustClassificationGroup.Text.Trim() // added this 2 field RH on 05/11/2014 ); } #endregion } else { Pos.Customer.Customer.UpdateCustomer(ref createdAx, ref comment, ref tempCustomer, ref entityKeys); } // Was the customer created in AX if (createdAx) { // Was the customer created locally DM.CustomerDataManager customerDataManager = new DM.CustomerDataManager( ApplicationSettings.Database.LocalConnection, ApplicationSettings.Database.DATAAREAID); LSRetailPosis.Transaction.Customer transactionalCustomer = tempCustomer as LSRetailPosis.Transaction.Customer; if (isEmptyCustomer) { createdLocal = customerDataManager.SaveTransactionalCustomer(transactionalCustomer, entityKeys); } else { createdLocal = customerDataManager.UpdateTransactionalCustomer(transactionalCustomer, entityKeys); } //Update the VM this.viewModel = new CustomerViewModel(tempCustomer); #region Nimbus UpdateCustomerInfo(tempCustomer.CustomerId); // blocked on 12.08.2013 #endregion } if (!createdAx) { Pos.Customer.Customer.InternalApplication.Services.Dialog.ShowMessage(51159, MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (!createdLocal) { Pos.Customer.Customer.InternalApplication.Services.Dialog.ShowMessage(51156, MessageBoxButtons.OK, MessageBoxIcon.Error); } } return(createdAx && createdLocal); } catch (Exception ex) { LSRetailPosis.ApplicationExceptionHandler.HandleException(this.ToString(), ex); Pos.Customer.Customer.InternalApplication.Services.Dialog.ShowMessage(51158, MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } }
public async Task <ActionResult <Customer> > PostCustomer(CustomerViewModel customer) { return(!ModelState.IsValid ? CustomResponse() : CustomResponse(await _customerAppService.Register(customer))); }
public CustomerUpdateCommand(CustomerViewModel viewModel) { _ViewModel = viewModel; }
public CustomerWindow(CustomerViewModel viewModel) { DataContext = viewModel ?? throw new ArgumentNullException(nameof(viewModel)); InitializeComponent(); }
public static CustomerDomain Create(CustomerViewModel customerViewModel) { return new CustomerDomain { Id = customerViewModel.Id, Name = customerViewModel.Name}; }
public ActionResult SaveCustomer(CustomerViewModel customerViewModel, string btnSubmit) { switch (btnSubmit) { case "Save": UserService _userService = new UserService(); string userName = customerViewModel.UserName; if ((string.IsNullOrEmpty(customerViewModel.UserName)) || customerViewModel.UserName.Length < 5 || customerViewModel.UserName.Length > 9) { ModelState.AddModelError("UserName", "UserName needs to between 5 to 9 characters"); } else if (_userService.IsUserNameOccupied(userName)) { ModelState.AddModelError("UserName", "This user name has already been used"); } if ((string.IsNullOrEmpty(customerViewModel.UserPass)) || customerViewModel.UserPass.Length < 5 || customerViewModel.UserPass.Length > 9) { ModelState.AddModelError("UserPass", "Password needs to between 5 to 9 characters"); } if (ModelState.IsValid) { var customer = ConvertToCustomerFromViewModel(customerViewModel); service.CreateNewCustomer(customer); ViewBag.Message = "Customer " + customerViewModel.FirstName + "has been saved"; return View(); } else { return View("Form", customerViewModel); } case "Cancel": return RedirectToAction("Index"); } return RedirectToAction("Index"); }
public HttpResponseMessage Update(HttpRequestMessage request, CustomerViewModel customer) { return CreateHttpResponse( request , () => { var response = default(HttpResponseMessage); if (!ModelState.IsValid) { response = request.CreateResponse(HttpStatusCode.BadRequest , ModelState.Keys.SelectMany(k => ModelState[k].Errors).Select(m => m.ErrorMessage).ToArray()); } else { var _customer = this.customersRepository.GetSingle(customer.ID); _customer.UpdateCustomer(customer); this.unitOfWork.Commit(); response = request.CreateResponse(HttpStatusCode.OK); } return response; }); }
public void Put(int id, [FromBody] CustomerViewModel customerViewModel) { customerViewModel.Id = id; _customerAppServices.Update(customerViewModel); }
public void EditCustomer(CustomerViewModel cms) { _customerRepository.EditCustomer(cms); }
public ActionResult Search(CustomerViewModel viewModel) { return(RedirectToAction("Index", "Customer", new { query = viewModel.SearchTerm })); }
public ActionResult Create() { var model = new CustomerViewModel(); return View(model); }
public ActionResult Edit(int id, CustomerViewModel viewmodel) { viewmodel.CustomerNo = id; //not set by binder if (SaveObject<Customer>(viewmodel.ModelObject, true)) { return RedirectToAction("Index"); } else { ViewData.Model = viewmodel; return View(); } }
public void Delete(CustomerViewModel viewModel) { _repository.Delete(viewModel.ToCustomerEntity()); _repository.Save(); }
public void Post([FromBody] CustomerViewModel customerViewModel) { _customerAppServices.Add(customerViewModel); }
public ActionResult Create(CustomerViewModel model) { if (!ModelState.IsValid || model == null) { return View(model); } try { // Create the customer By mapping the view model to a model and grabbing the // current logged in user ID _repo.Create(Mapper.Map<CustomerViewModel, Customer>(model), User.Identity.GetUserId()); Success("Customer Created"); return RedirectToAction("Index"); } catch (UserNotFoundException) { Danger("The Attached User ID in the Customer Creation Request doest not exist"); return RedirectToAction("Oops", "Home"); } catch (CompanyAlreadyExistsException) { Danger("The company name already exists"); return View(model); } }
public async Task <ActionResult> ManageModuel(CustomerViewModel model) { return(View()); }
public void Update(CustomerViewModel customerViewModel) { var updateCommand = _mapper.Map <UpdateCustomerCommand>(customerViewModel); Bus.SendCommand(updateCommand); }
public static string GetHtmlString( CustomerViewModel customer, IEnumerable <CustomerPaidOrdersViewModel> customerPaidOrders, IEnumerable <CustomerUnPaidOrdersViewModel> customerUnPaidOrders, DateTime fromDate, DateTime toDate) { var sbFinal = new StringBuilder(); sbFinal.Append($@" <html> <head> </head> <body> <div class='center'> <img src='data:image/png;base64,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' /> </div> <div class='center xsmall-font'>{CompanyName}</div> <div class='center xsmall-font'>{PhoneNumbers}</div> <div class='center xsmall-font spaceafter-10'>{Website}</div> <hr/> <div>LED Lights And Parts</div> <div class='xsmall-font spaceafter-10'><b>Vancouver:</b> <br /> 3695 E 1st Ave, <br /> Vancouver, BC V5M 1C2 <br /> Phone: +1 (604) 559-5000 <br /> <b>Abbotsford:</b> <br /> 33228 S Fraser Way <br /> Abbotsford, BC, V2S 2B3 <br /> Phone: +1 (604) 744-4474 </div> <hr /> <table style='width:100%'> <tr> <td style='width:33%'><td style='width:33%;text-align:center'><h3>Monthly Statement</h3></td><td style='width:33%'></td> </tr> <tr> <td style='width:33%'> Date: {toDate.ToShortDateString()} <br/> Report Period: {fromDate.ToShortDateString()} - {toDate.ToShortDateString()} </td> <td style='width:33%'></td> <td style='width:33%'> Customer: {customer.CompanyName} <br/> Account Number: {customer.CustomerCode} <br/> Address: {customer.Address} <br/> {customer.City}, {customer.Province} <br/> {customer.PostalCode} </td> </tr> </table> <br/> <hr/> <h3>Paid</h3> <table> <tr> <th style='border: 1px solid black; padding:5px'>Invoice No</td> <th style='border: 1px solid black; padding:5px'>PO Number</td> <th style='border: 1px solid black; padding:5px'>Total Sale</td> <th style='border: 1px solid black; padding:5px'>Status</td> <th style='border: 1px solid black; padding:5px'>Date</td> <th style='border: 1px solid black; padding:5px'>Payment Amount</td> <th style='border: 1px solid black; padding:5px'>Paid By</td> </tr> {GetPaidAmountRows(customerPaidOrders)} </table> <br/> <h3>Awaiting Payment - Till Date</h3> <table style='border-collapse: collapse;'> <tr> <th style='border: 1px solid black; padding:5px'>Invoice No</td> <th style='border: 1px solid black; padding:5px'>PO Number</td> <th style='border: 1px solid black; padding:5px'>Total Sale</td> <th style='border: 1px solid black; padding:5px'>Status</td> <th style='border: 1px solid black; padding:5px'>Date</td> <th style='border: 1px solid black; padding:5px'>Due Date</td> </tr> {GetUnPaidAmountRows(customerUnPaidOrders)} </table> <p> <b> <span style='fond-size:20px;'>To pay by cheque for an invoice, please <span style='fond-size:30px;'>PAY TO THE ORDER OF: PIXEL PRINT LTD.</span> </span> </b> </p> <hr/> <p> The payments are pending for awaiting payment transactions, if any. Please pay the amount to avoid late fee of 2% on total per transaction. </p> <p> Please contact Customer Service at 1-888-672-2627 with any questions and comments. </p> <h4> Thanks you for your business. </h4> "); sbFinal.Append("</body></ html>"); return(sbFinal.ToString()); }
public void ShowModel(CustomerViewModel myModel) { customerBindingSource.DataSource = myModel; }
// GET: Employees/Edit public ActionResult Edit(int employeeID) { CustomerViewModel customerViewModel = _customer[employeeID]; return(View("Edit", customerViewModel)); }
public ActionResult Edit(CustomerViewModel model) { return(CreateEdit(model)); }
public MainWindow() { InitializeComponent(); DataContext = new CustomerViewModel(); }
public async Task <IActionResult> Update(int TN, CustomerViewModel model) { var result = await _ICustomerRespositories.Update(TN, model); return(Ok(result)); }
public async Task AddCustomer(CustomerViewModel customerViewModel) { var registerCommand = mapper.Map <CreateCustomerCommand>(customerViewModel); await mediator.SendCommand(registerCommand); }
public async Task <SubscriptionsSummary> ProcessOrderForUnAuthenticatedCustomer(string customerId, string paymentId, string payerId) { DateTime startTime = DateTime.Now; customerId.AssertNotEmpty(nameof(customerId)); paymentId.AssertNotEmpty(nameof(paymentId)); payerId.AssertNotEmpty(nameof(payerId)); BrandingConfiguration branding = await ApplicationDomain.Instance.PortalBranding.RetrieveAsync().ConfigureAwait(false); CustomerViewModel customerRegistrationInfoPersisted = await ApplicationDomain.Instance.CustomerRegistrationRepository.RetrieveAsync(customerId).ConfigureAwait(false); Customer newCustomer = new Customer() { CompanyProfile = new CustomerCompanyProfile() { Domain = customerRegistrationInfoPersisted.DomainName, }, BillingProfile = new CustomerBillingProfile() { Culture = customerRegistrationInfoPersisted.BillingCulture, Language = customerRegistrationInfoPersisted.BillingLanguage, Email = customerRegistrationInfoPersisted.Email, CompanyName = customerRegistrationInfoPersisted.CompanyName, DefaultAddress = new Address() { FirstName = customerRegistrationInfoPersisted.FirstName, LastName = customerRegistrationInfoPersisted.LastName, AddressLine1 = customerRegistrationInfoPersisted.AddressLine1, AddressLine2 = customerRegistrationInfoPersisted.AddressLine2, City = customerRegistrationInfoPersisted.City, State = customerRegistrationInfoPersisted.State, Country = customerRegistrationInfoPersisted.Country, PostalCode = customerRegistrationInfoPersisted.ZipCode, PhoneNumber = customerRegistrationInfoPersisted.Phone, } } }; // Register customer newCustomer = await ApplicationDomain.Instance.PartnerCenterClient.Customers.CreateAsync(newCustomer).ConfigureAwait(false); ResourceCollection <AgreementMetaData> agreements = await ApplicationDomain.Instance.PartnerCenterClient.AgreementDetails.GetAsync().ConfigureAwait(false); // Obtain reference to the Microsoft Customer Agreement. AgreementMetaData microsoftCustomerAgreement = agreements.Items.FirstOrDefault(agr => agr.AgreementType.Equals("MicrosoftCustomerAgreement", StringComparison.InvariantCultureIgnoreCase)); // Attest that the customer has accepted the Microsoft Customer Agreement (MCA). await ApplicationDomain.Instance.PartnerCenterClient.Customers[newCustomer.Id].Agreements.CreateAsync( new Agreement { DateAgreed = DateTime.UtcNow, PrimaryContact = new PartnerCenter.Models.Agreements.Contact { Email = customerRegistrationInfoPersisted.Email, FirstName = customerRegistrationInfoPersisted.FirstName, LastName = customerRegistrationInfoPersisted.LastName, PhoneNumber = customerRegistrationInfoPersisted.Phone }, TemplateId = microsoftCustomerAgreement.TemplateId, Type = "MicrosoftCustomerAgreement", UserId = branding.AgreementUserId }).ConfigureAwait(false); string newCustomerId = newCustomer.CompanyProfile.TenantId; CustomerViewModel customerViewModel = new CustomerViewModel() { AddressLine1 = newCustomer.BillingProfile.DefaultAddress.AddressLine1, AddressLine2 = newCustomer.BillingProfile.DefaultAddress.AddressLine2, City = newCustomer.BillingProfile.DefaultAddress.City, State = newCustomer.BillingProfile.DefaultAddress.State, ZipCode = newCustomer.BillingProfile.DefaultAddress.PostalCode, Country = newCustomer.BillingProfile.DefaultAddress.Country, Phone = newCustomer.BillingProfile.DefaultAddress.PhoneNumber, Language = newCustomer.BillingProfile.Language, FirstName = newCustomer.BillingProfile.DefaultAddress.FirstName, LastName = newCustomer.BillingProfile.DefaultAddress.LastName, Email = newCustomer.BillingProfile.Email, CompanyName = newCustomer.BillingProfile.CompanyName, MicrosoftId = newCustomer.CompanyProfile.TenantId, UserName = newCustomer.BillingProfile.Email, Password = newCustomer.UserCredentials.Password, AdminUserAccount = newCustomer.UserCredentials.UserName + "@" + newCustomer.CompanyProfile.Domain }; IPaymentGateway paymentGateway = PaymentGatewayConfig.GetPaymentGatewayInstance(ApplicationDomain.Instance, "ProcessingOrder"); OrderViewModel orderToProcess = await paymentGateway.GetOrderDetailsFromPaymentAsync(payerId, paymentId, string.Empty, string.Empty).ConfigureAwait(false); // Assign the actual customer Id orderToProcess.CustomerId = newCustomerId; CommerceOperations commerceOperation = new CommerceOperations(ApplicationDomain.Instance, newCustomerId, paymentGateway); await commerceOperation.PurchaseAsync(orderToProcess).ConfigureAwait(false); SubscriptionsSummary summaryResult = await GetSubscriptionSummaryAsync(newCustomerId).ConfigureAwait(false); // Remove the persisted customer registration info. await ApplicationDomain.Instance.CustomerRegistrationRepository.DeleteAsync(customerId).ConfigureAwait(false); // Capture the request for the customer summary for analysis. Dictionary <string, string> eventProperties = new Dictionary <string, string> { { "CustomerId", orderToProcess.CustomerId } }; // Track the event measurements for analysis. Dictionary <string, double> eventMetrics = new Dictionary <string, double> { { "ElapsedMilliseconds", DateTime.Now.Subtract(startTime).TotalMilliseconds } }; ApplicationDomain.Instance.TelemetryService.Provider.TrackEvent("api/order/NewCustomerProcessOrder", eventProperties, eventMetrics); summaryResult.CustomerViewModel = customerViewModel; return(summaryResult); }
public HttpResponseMessage Post([FromBody] CustomerViewModel customer) { List <AddressViewModel> customerAddress = null; List <AccountViewModel> customerAccount = null; try { using (BankingDatabaseEntities entities = new BankingDatabaseEntities()) { Customer _customer = new Customer(); _customer.CustomerFirstName = customer.FirstName; _customer.CustomerMiddleName = customer.MiddleName; _customer.CustomerLastName = customer.LastName; _customer.EmailAddress = customer.EmailAddress; _customer.FaxNumber = customer.FaxNumber; _customer.PhoneNumber = customer.PhoneNumber; _customer.CreateDate = DateTime.Now; _customer.LastUpdate = DateTime.Now; entities.Customers.Add(_customer); entities.SaveChanges(); customerAddress = customer.customerAddress; List <Address> _customerAddress = new List <Address>(); foreach (var address in customerAddress) { _customerAddress.Add(new Address { CustomerId = _customer.CustomerId, Address1 = address.Address1, Address2 = address.Address2, Address3 = address.Address3, City = address.City, ZipCode = address.ZipCode, StateId = entities.States.FirstOrDefault(x => Equals(x.Abbreviation, address.State)).StateId, CreateDate = DateTime.Now, LastUpdate = DateTime.Now }); } entities.Addresses.AddRange(_customerAddress); entities.SaveChanges(); customerAccount = customer.AccountInformation; List <Account> _customerAccount = new List <Account>(); foreach (var account in customerAccount) { _customerAccount.Add(new Account { AccountNumber = account.AccountNumber, CurrentAccountBalance = account.CurrentAccountBalance, AccountStatusId = entities.AccountStatus.FirstOrDefault(x => x.Name == "Active").AccountStatusId, AccountTypeId = entities.AccountTypes.FirstOrDefault(x => x.Name == account.AccountType).AccountTypeId, Active = account.CurrentAccountBalance > 0 ? true : false, CreateDate = DateTime.Now, LastUpdate = DateTime.Now }); } entities.Accounts.AddRange(_customerAccount); entities.SaveChanges(); List <CustomerAccount> _customerAccountMatch = new List <CustomerAccount>(); foreach (var account in _customerAccount) { _customerAccountMatch.Add(new CustomerAccount { CustomerId = _customer.CustomerId, AccountId = account.AccountId }); } entities.CustomerAccounts.AddRange(_customerAccountMatch); entities.SaveChanges(); var message = Request.CreateResponse(HttpStatusCode.Created, customer); message.Headers.Location = new Uri(Request.RequestUri + _customer.CustomerId.ToString()); return(message); } } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex)); } }
private async void Page_Loaded(object sender, RoutedEventArgs e) { var dc = new CustomerViewModel(); this.DataContext = dc; await dc.InitAsync(); }
public void Register(CustomerViewModel customerViewModel) { var registerCommand = _mapper.Map <AddNewCustomerCommand>(customerViewModel); Bus.SendCommand(registerCommand); }