public virtual async Task <IActionResult> CustomerCreatePost([FromBody] CustomerCreateOrUpdate body)
        {
            _dbContext.RefreshFullDomain();
            var cust = await _customerService.CreateCustomerAsync(body);

            return(new ObjectResult(cust));
        }
Exemplo n.º 2
0
        public async Task <User> CreateUser(CustomerCreateOrUpdate info)
        {
            Check.Require(info != null, "CustomerCreateOrUpdate must be valid.");

            var now = DateTime.UtcNow;

            var u = _mapper.Map <CustomerCreateOrUpdate, User>(info);

            u.Createdon  = now;
            u.Modifiedon = now;
            u.Createdby  = "System";
            u.Modifiedby = "System";

            var peEntity = await CreatePeople(info);

            u.People = peEntity;

            u.Activate = true;

            await _userRepository.AddAsync(u);

            var errors = await _unitOfWork.CommitHandledAsync();

            if (!errors)
            {
                _logger.LogError($"Can't create user ! { JsonConvert.SerializeObject(u, Formatting.Indented, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore })} ");
            }

            return(u);
        }
Exemplo n.º 3
0
        public async Task <CustomerProfile> UpdateCustomerAsync(CustomerCreateOrUpdate customer)
        {
            var u1 = _userRepository.DbSet
                     .Include("People")
                     .Include("People.Phone")
                     .Where(x => x.Userid.ToString() == customer.CustomerId).First();

            var dateNow = DateTime.UtcNow;

            var people = _mapper.Map <CustomerCreateOrUpdate, People>(customer, u1.People);

            people.Modifiedon = dateNow;

            var user = _mapper.Map <CustomerCreateOrUpdate, User>(customer, u1);

            user.Modifiedon = dateNow;

            CustomerProfile cp = null;

            await Task.Factory.StartNew(() =>
            {
                cp = _mapper.Map <User, CustomerProfile>(user);
            });

            return(cp);
        }
Exemplo n.º 4
0
        public async Task <Address> CreateAddress(People p, CustomerCreateOrUpdate info)
        {
            Check.Require(info != null, "CustomerCreateOrUpdate must be valid.");

            var now = DateTime.UtcNow;

            var add1 = new Address()
            {
                People     = p,
                Street1    = info.Address1,
                Street2    = info.Address2,
                Country    = info.Country,
                Modifiedon = now,
                Createdby  = "System",
                Modifiedby = "System",
                Createdon  = now
            };

            await _addressRepository.AddAsync(add1);

            var errors = await _unitOfWork.CommitHandledAsync();

            if (!errors)
            {
                _logger.LogError($"Can't create address ! {JsonConvert.SerializeObject(add1, Formatting.Indented, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore })} ");
            }

            return(add1);
        }
Exemplo n.º 5
0
        public async Task <People> CreatePeople(CustomerCreateOrUpdate info)
        {
            Check.Require(info != null, "CustomerCreateOrUpdate must be valid.");

            var now = DateTime.UtcNow;

            var p = new People();

            p.Firstname  = info.FirstName;
            p.Lastname   = info.LastName;
            p.Email      = info.Email;
            p.Createdon  = now;
            p.Modifiedon = now;
            p.Createdby  = "System";
            p.Modifiedby = "System";

            await _peopleRepository.AddAsync(p);

            var errors = await _unitOfWork.CommitHandledAsync();

            if (!errors)
            {
                _logger.LogError($"Can't create people ! {JsonConvert.SerializeObject(p, Formatting.Indented, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore })} ");
            }

            return(p);
        }
        public virtual async Task <IActionResult> CustomerUpdatePut([FromBody] CustomerCreateOrUpdate body)
        {
            User.CheckIfValidCustomerId(body.CustomerId, true);

            _dbContext.RefreshFullDomain();
            var cust = await _customerService.UpdateCustomerAsync(body);

            return(new ObjectResult(cust));
        }
Exemplo n.º 7
0
        public async Task <CustomerProfile> CreateCustomerAsync(CustomerCreateOrUpdate customer)
        {
            var u = await CreateUser(customer);

            return(_mapper.Map <User, CustomerProfile>(u));
        }
Exemplo n.º 8
0
        public async Task <IActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl = null)
        {
            if (ModelState.IsValid)
            {
                // Get the information about the user from the external login provider
                var info = await _signInManager.GetExternalLoginInfoAsync();

                if (info == null)
                {
                    return(View("ExternalLoginFailure"));
                }

                if (!model.IsAgree)
                {
                    ModelState.AddModelError(string.Empty, "Please accept Terms and Conditions");
                    return(View(model));
                }

                var user = new User {
                    UserName = model.Email, Email = model.Email
                };
                var result = await _userManager.CreateAsync(user);

                if (result.Succeeded)
                {
                    result = await _userManager.AddLoginAsync(user, info);

                    if (result.Succeeded)
                    {
                        var fNameCalculated = model.Email.Split(new string[] { "@" }, StringSplitOptions.RemoveEmptyEntries);

                        var modelCust = new CustomerCreateOrUpdate()
                        {
                            FirstName = fNameCalculated != null && fNameCalculated.Length > 0 ? fNameCalculated.First() : string.Empty,
                            LastName  = string.Empty,
                            Email     = model.Email,
                            Phone     = string.Empty
                        };

                        //var t1 = await GetToken("*****@*****.**", "api.main");

                        //var _httpClient = new HttpClient();
                        //_httpClient.SetBearerToken(t1);
                        //var resFinal1 = await _httpClient.PostAsync($"{""}/customer/create",
                        //    new StringContent(JsonConvert.SerializeObject(modelCust), Encoding.UTF8, "application/json"));
                        //resFinal1.EnsureSuccessStatusCode();

                        //var resModel1String = await resFinal1.Content.ReadAsStringAsync();
                        //var resModel1 = JsonConvert.DeserializeObject<CustomerProfile>(resModel1String);

                        //user.CustomerId = resModel1.CustomerId;

                        //await _userManager.UpdateAsync(user);

                        //await _userManager.AddClaimAsync(user, new Claim("customerid", resModel1.CustomerId));

                        //var lstRoles = new List<string>();

                        //lstRoles.Add("mainasset");
                        //lstRoles.Add("blockchainuser");
                        //lstRoles.Add("branch");
                        //lstRoles.Add("business");
                        //lstRoles.Add("coin");
                        //lstRoles.Add("coupon");
                        //lstRoles.Add("customer");
                        //lstRoles.Add("iot");
                        //lstRoles.Add("order");
                        //lstRoles.Add("point");
                        //lstRoles.Add("pos");
                        //lstRoles.Add("policy");
                        //lstRoles.Add("program");
                        //lstRoles.Add("qrcode");
                        //lstRoles.Add("return");
                        //lstRoles.Add("voucher");
                        //lstRoles.Add("workflow");

                        //await _userManager.AddToRolesAsync(user, lstRoles);

                        await _signInManager.SignInAsync(user, isPersistent : false);

                        _logger.LogInformation(6, "User created an account using {Name} provider.", info.LoginProvider);

                        if (string.IsNullOrWhiteSpace(returnUrl))
                        {
                            returnUrl = "/ManageHome";
                        }

                        return(Redirect(returnUrl));
                    }
                }
                AddErrors(result);
            }

            ViewData["ReturnUrl"] = returnUrl;
            return(View(model));
        }
Exemplo n.º 9
0
        public async Task <IActionResult> RegisterFromAdmin([FromBody] RegisterViewModel model)
        {
            _logger.LogInformation($"[RegisterFromAdmin] Registering starting: {model.Email}, redirect: {null}");

            if (!model.IsAgree)
            {
                return(null);
            }

            if (string.IsNullOrWhiteSpace(model.Password) || model.Password.Count() < 4)
            {
                return(null);
            }

            var user = new User {
                UserName = model.Email, Email = model.Email
            };
            var result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
//                // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=532713
//                // Send an email with this link
//                var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
//                var callbackUrl = Url.Action(nameof(ConfirmEmail), "MemberAccount", new { userId = user.Id, code = code }, protocol: HttpContext.Request.Scheme);

//                var message = @"<b>Herzlich willkommen bei LedgerLocal,</b>
//<p>
//Sammeln Sie ab jetzt bei all unseren Partnerunternehmen Treuepunkte, tauschen Sie diese jederzeit und wählen Sie wann und wo immer sie diese einsetzen möchten – Sie haben die Wahl.
//Alles ganz einfach auf Ihrem Telefon, digital, sofort sichtbar und ohne Papierverschwendung. LedgerLocal macht Ihre Treuepunkte tauschbar – dank Blockchain.
//</p>

//<b><p>
//*** Drücken Sie <a href = '{0}'>hier</a> um Ihr Email zu bestätigen ***
//</b></p>

//<p>
//Bei Fragen können Sie jederzeit unseren Kundenservice auf [email protected] kontaktieren.
//</p>

//<p>
//Mit freundlichen Grüssen,<br />
//Ihr LedgerLocal Team
//</p>

//PS: Laden Sie jetzt die LedgerLocal App auf Ihr Telefon herunter (Iphone / Android), loggen Sie sich mit Ihrer Email Adresse und Ihrem neuen Passwort ein und sammeln ab jetzt bei unseren Partnerunternehmen Treuepunkte.
//Mehr zu LedgerLocal erfahren Sie auf unserer website <a href = 'www.ledgerlocal.ch'>www.ledgerlocal.ch</a>";
//                message = string.Format(message, callbackUrl);

//                await _emailSender.SendEmailAsync(model.Email, "Confirm your account", message);
                await _signInManager.SignInAsync(user, isPersistent : false);

                _logger.LogInformation(3, "User created a new account with password.");

                var fNameCalculated = model.Email.Split(new string[] { "@" }, StringSplitOptions.RemoveEmptyEntries);

                var modelCust = new CustomerCreateOrUpdate()
                {
                    FirstName = fNameCalculated != null && fNameCalculated.Length > 0 ? fNameCalculated.First() : string.Empty,
                    LastName  = string.Empty,
                    Email     = model.Email,
                    Phone     = string.Empty
                };

                //var t1 = await GetToken("*****@*****.**", "api.main");

                //var _httpClient = new HttpClient();
                //_httpClient.SetBearerToken(t1);
                //var resFinal1 = await _httpClient.PostAsync($"{""}/customer/create",
                //    new StringContent(JsonConvert.SerializeObject(modelCust), Encoding.UTF8, "application/json"));
                //resFinal1.EnsureSuccessStatusCode();

                //var resModel1String = await resFinal1.Content.ReadAsStringAsync();
                //var resModel1 = JsonConvert.DeserializeObject<CustomerProfile>(resModel1String);

                //user.CustomerId = resModel1.CustomerId;

                //await _userManager.UpdateAsync(user);

                //await _userManager.AddClaimAsync(user, new Claim("customerid", resModel1.CustomerId));

                //var lstRoles = new List<string>();

                //lstRoles.Add("mainasset");
                //lstRoles.Add("blockchainuser");
                //lstRoles.Add("branch");
                //lstRoles.Add("business");
                //lstRoles.Add("coin");
                //lstRoles.Add("coupon");
                //lstRoles.Add("customer");
                //lstRoles.Add("iot");
                //lstRoles.Add("order");
                //lstRoles.Add("point");
                //lstRoles.Add("pos");
                //lstRoles.Add("policy");
                //lstRoles.Add("program");
                //lstRoles.Add("qrcode");
                //lstRoles.Add("return");
                //lstRoles.Add("voucher");
                //lstRoles.Add("workflow");

                //await _userManager.AddToRolesAsync(user, lstRoles);

                return(new ObjectResult(modelCust));
            }

            return(null);
        }