Example #1
0
        public async Task <IHttpActionResult> AccountPut(AuthNameViewModel model)
        {
            try
            {
                var account = await _auth.AccountGetAsync(model.Email, isIncludeSubEmails : true);

                if (!object.Equals(account, null))
                {
                    return(AccountExists());
                }

                account = new Account(model.Email, model.FirstName, model.LastName);

                var errorResult = GetErrorResult(await _auth.AccountCreateAsync(account));

                if (!object.Equals(errorResult, null))
                {
                    return(errorResult);
                }

                account = await _auth.AccountGetAsync(model.Email);

                var log = string.Format("Customer({0}) has been created.", account.Email);

                await LogInsertAsync(log, LogActionTypeEnum.AccountCreate, account.Id);

                return(Ok(new AccountViewModel(account)));
            }
            catch (Exception exc) { return(ErrorContent(exc)); }
        }
        public async Task <IHttpActionResult> Register(AuthNameViewModel model)
        {
            try
            {
                var user = await _auth.AccountGetAsync(model.Email, isIncludeSubEmails : true);

                if (!object.Equals(user, null))
                {
                    return(AccountExists());
                }

                user = new Account(model.Email, model.FirstName, model.LastName);

                var result = await _auth.AccountCreateAsync(user);

                var errorResult = GetErrorResult(result);

                if (!object.Equals(errorResult, null))
                {
                    return(errorResult);
                }
            }
            catch (Exception exc) { return(Request.HttpExceptionResult(exc)); }

            return(Ok());
        }
Example #3
0
        public async Task <IHttpActionResult> Info(Guid userId, AuthNameViewModel model)
        {
            var user = await _auth.AccountGetAsync(userId);

            if (object.Equals(user, null))
            {
                return(AccountNotFound());
            }

            var userWithEmail = await _auth.AccountGetAsync(model.Email);

            if (!object.Equals(userWithEmail, null) && user.Id != userWithEmail.Id)
            {
                return(AccountExists());
            }

            user.FirstName = model.FirstName;
            user.LastName  = model.LastName;
            user.Email     = model.Email;

            var result = await _auth.AccountUpdateAsync(user);

            var errorResult = GetErrorResult(result);

            if (!object.Equals(errorResult, null))
            {
                return(errorResult);
            }

            return(Ok());
        }
Example #4
0
        public async Task <IHttpActionResult> AccounPost(Guid accountId, AuthNameViewModel model)
        {
            return(await CurrentAccountExecuteAsync(async delegate(Account account)
            {
                var userWithEmail = await _auth.AccountGetAsync(model.Email, isIncludeSubEmails: true);

                if (!object.Equals(userWithEmail, null) && account.Id != userWithEmail.Id)
                {
                    return AccountExists();
                }

                if (!string.Equals(account.FirstName, model.FirstName, StringComparison.InvariantCultureIgnoreCase) ||
                    !string.Equals(account.LastName, model.LastName, StringComparison.InvariantCultureIgnoreCase))
                {
                    account.FirstName = model.FirstName;
                    account.LastName = model.LastName;

                    var errorResult = GetErrorResult(await _auth.AccountUpdateAsync(account));
                    if (!object.Equals(errorResult, null))
                    {
                        return errorResult;
                    }

                    var log = string.Format("Customer's({0}) first or last name have been changed.", account.Email);

                    await LogInsertAsync(log, LogActionTypeEnum.AccountEdit, account.Id);
                }

                if (!string.Equals(account.Email, model.Email, StringComparison.InvariantCultureIgnoreCase))
                {
                    account.Email = model.Email;

                    await _auth.AccountSubEmailPendingDeleteAsync(account.Id);

                    var pending = await _auth.AccountSubEmailPendingSetAsync(account.Id, model.Email);
                    await _auth.AccountEmailSetAsync(pending);

                    var log = string.Format("Customer's({0}) email has been changed.", account.Email);

                    await LogInsertAsync(log, LogActionTypeEnum.AccountEdit, account.Id);
                }

                return Ok(new AccountViewModel(account));
            }, accountId));
        }