public async Task <IActionResult> Edit(CustomerInputeModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            await _service.UpdateRecord(model);

            return(RedirectToAction(nameof(Index)));
        }
示例#2
0
        private async Task CreateCustomer(CustomerInputeModel model, Guid customerOrganizationID)
        {
            var usersession = GetUserSession();

            var customer = Mapper.Map <ERP.Models.Customer>(model);

            customer.CustomerOrganizationID = customerOrganizationID;
            customer.OrganizationID         = usersession.OrganizationID;
            customer.CreateBy   = customer.UpdateBy = usersession.UserFullName;
            customer.UserID     = usersession.UserID;
            customer.CreateDate = customer.UpdateDate = DateTimeService.ProvideDateTime();

            await DbContext.Customers.AddAsync(customer);

            await DbContext.SaveChangesAsync();
        }
示例#3
0
        public async Task UpdateRecord(CustomerInputeModel inputModel)
        {
            var userSession = GetUserSession();
            var customer    = await DbContext.Customers.FirstOrDefaultAsync(m => m.ID == inputModel.ID);

            var organization = await DbContext.Organizations.FirstOrDefaultAsync(m => m.ID == customer.CustomerOrganizationID);

            Mapper.Map <CustomerInputeModel, ERP.Models.Customer>(inputModel, customer);
            Mapper.Map <CustomerInputeModel, Organization>(inputModel, organization);

            organization.UpdateBy   = customer.UpdateBy = userSession.UserFullName;
            organization.UpdateDate = customer.UpdateDate = DateTimeService.ProvideDateTime();

            DbContext.Attach(customer).State     = EntityState.Modified;
            DbContext.Attach(organization).State = EntityState.Modified;

            await DbContext.SaveChangesAsync();
        }
示例#4
0
        private async Task <Guid> CreateCustomerOrganization(CustomerInputeModel model)
        {
            var userSession = GetUserSession();

            Guid id       = Guid.NewGuid();
            var  instance = this.Mapper.Map <Organization>(model);

            instance.ProviderOrganizationID = userSession.OrganizationID;
            instance.ID         = id;
            instance.CreateBy   = userSession.UserFullName;
            instance.UpdateBy   = userSession.UserFullName;
            instance.CreateDate = DateTimeService.ProvideDateTime();
            instance.UpdateDate = DateTimeService.ProvideDateTime();


            await DbContext.Organizations.AddAsync(instance);

            await DbContext.SaveChangesAsync();

            return(id);
        }
示例#5
0
        public async Task CreateNewRecord(CustomerInputeModel model)
        {
            using (var transaction = DbContext.Database.BeginTransaction())
            {
                Guid customerOrganizationID = await CreateCustomerOrganization(model);

                UserAdminInputData data = new UserAdminInputData()
                {
                    OrganizationID = customerOrganizationID, Email = model.Email
                };

                var loginData = await CreateSuperAdmin(data, _userManager);

                await CreateCustomer(model, customerOrganizationID);

                // change it if you are going to production, password protection is needed too
                //await EmailSender.SendEmailAsync(model.Email, "Your Customer Organization is created", $"Your logging credentials UserName:{loginData.UserName} and Password: {loginData.Password}");
                await EmailSender.SendEmailAsync("*****@*****.**", "Your Customer Organization is created", $"Your logging credentials UserName:{loginData.UserName} and Password: {loginData.Password}");

                transaction.Commit();
            }
        }