public async Task<HttpResponseMessage> Post(LoginModel loginModel)
        {
            HttpResponse response = HttpContext.Current.Response;
            if (ModelState.IsValid)
            {
                AccountModel accountModel = await _authenticationService.Login(response, loginModel);
                return Request.CreateResponse(HttpStatusCode.OK);
            }

            return Request.CreateResponse(HttpStatusCode.Forbidden);
        }
        public async Task<AccountModel> Login(HttpResponse httpResponse, LoginModel loginModel)
        {
            AccountModel accountModel = await _accountService.Get(loginModel.Login, loginModel.Password);
            if (accountModel != null)
            {
                var principalModel = new CustomPrincipalSerializeModel
                {
                    FirstName = accountModel.FirstName,
                    LastName = accountModel.LastName,
                    UserId = accountModel.AccountId,
                    Roles = accountModel.Roles.Select(role => role.Name).ToArray(),
                    Login = accountModel.Login
                };

                ProlongateUserSession(httpResponse, principalModel);
            }

            return accountModel;
        }