public async Task<IHttpActionResult> Post(RegisterViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                switch (viewModel.Action)
                {
                    case Enums.LoginActions.Login:
                        {
                            var user = userManager.FindByName(viewModel.Email);

                            if (user == null)
                            {
                                return new ResourceMetadata.Web.Helpers.InvalidUserResult(Request);
                            }

                            await SignInAsync(user, isPersistent: false);
                            return Ok();
                        }
                    case Enums.LoginActions.Register:
                        {
                            try
                            {
                                ApplicationUser user = new ApplicationUser();
                                Mapper.Map(viewModel, user);
                                var identityResult = await userManager.CreateAsync(user);

                                if (identityResult.Succeeded)
                                {
                                    await SignInAsync(user, isPersistent: false);
                                }
                                else
                                {
                                    foreach (var error in identityResult.Errors)
                                    {

                                    }
                                }
                            }
                            catch (Exception ex)
                            {

                                throw ex;
                            }


                            //userService.RegisterUser(user);
                            //var ticket = new FormsAuthenticationTicket(viewModel.Email, true, 3);
                            //var jsonString = JsonConvert.SerializeObject(ticket);
                            //HttpContext.Current.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket)));
                            return Ok();
                        }
                    default:
                        {
                            break;
                        }
                }
            }

            return InternalServerError();
        }
        public IHttpActionResult Post(RegisterViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                User user = new User();
                Mapper.Map(viewModel, user);

                userService.RegisterUser(user);
                var ticket = new FormsAuthenticationTicket(viewModel.Email, true, 3);
                var jsonString = JsonConvert.SerializeObject(ticket);
                HttpContext.Current.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket)));
                return Ok();
            }

            return InternalServerError();
        }
        public IHttpActionResult Post(RegisterViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                switch (viewModel.Action)
                {
                    case Enums.LoginActions.Login:
                        {
                            var user = userService.GetUserByEmailAndPassword(viewModel.Email, viewModel.Password);

                            if (user == null)
                            {
                                return new ResourceMetadata.Web.Helpers.InvalidUserResult(Request);
                            }

                            var ticket = new FormsAuthenticationTicket(viewModel.Email, true, 30);
                            var jsonString = JsonConvert.SerializeObject(ticket);
                            HttpContext.Current.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket)));
                            return Ok();
                        }
                    case Enums.LoginActions.Register:
                        {
                            User user = new User();
                            Mapper.Map(viewModel, user);

                            userService.RegisterUser(user);
                            var ticket = new FormsAuthenticationTicket(viewModel.Email, true, 3);
                            var jsonString = JsonConvert.SerializeObject(ticket);
                            HttpContext.Current.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket)));
                            return Ok();
                        }
                    default:
                        {
                            break;
                        }
                }
            }
            return InternalServerError();
        }