public HttpResponseMessage CreateOrUpdateLumixUserProfile([FromBody] LumixPromotionUserProfileModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var    arr   = model.Email.Split('@');
                    string email = string.Empty;
                    if (arr.Length == 2)
                    {
                        email       = string.Format("{0}_{1}@{2}", arr[0], model.Id, arr[1]);
                        model.Email = email;
                    }

                    var userInfo = _eloquaService.GetLumixContactProfiles(model.Id);
                    if (userInfo != null && userInfo.Email != model.Email)
                    {
                        _eloquaService.ChangeEmailAddress(userInfo.EloquaContactId, userInfo.Email, model.Email);
                    }

                    var contactDetails = PauHelper.MapLumixAccountModelToContactDetailEntity(model);
                    _eloquaService.CreateOrUpdateContact(contactDetails);

                    return(Request.CreateResponse(HttpStatusCode.OK, new ResponseDTO
                    {
                        Success = true,
                        StatusCode = 200,
                        Message = WellknownResponseMessages.Success
                    }));
                }

                return(Request.CreateResponse(HttpStatusCode.BadRequest, new ResponseDTO
                {
                    Success = false,
                    StatusCode = 400,
                    Message = WellknownResponseMessages.Falied,
                    Errors = ModelState.AllErrors()
                }));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, new ResponseDTO
                {
                    Success = false,
                    StatusCode = 500,
                    Message = WellknownResponseMessages.Falied,
                    Errors = new List <string> {
                        ex.Message + "\r\n" + ex.StackTrace
                    }
                }));
            }
        }
        public HttpResponseMessage Register([FromBody] RegisterAccountModel model)
        {
            try
            {
                if (ModelState.ContainsKey("model.DateOfBirth") && ModelState["model.DateOfBirth"].Errors.Any(x => x.Exception != null))
                {
                    ModelState.AddModelError("DateOfBirth", WellknownResponseMessages.InvalidBirthDateFormat);
                }

                if (ModelState.IsValid)
                {
                    if (string.IsNullOrEmpty(model.PAUMemberSource))
                    {
                        model.PAUMemberSource = PauHelper.PromotionSite;
                    }
                    var contactDetails = PauHelper.MapRegisterAccountModelToContactDetailEntity(model);
                    contactDetails.PasswordResetGuid = Guid.NewGuid().ToString();
                    _eloquaService.CreateOrUpdateContact(contactDetails);
                    return(Request.CreateResponse(HttpStatusCode.OK, new ResponseDTO
                    {
                        Success = true,
                        StatusCode = 200,
                        Message = WellknownResponseMessages.Success
                    }));
                }

                return(Request.CreateResponse(HttpStatusCode.BadRequest, new ResponseDTO
                {
                    Success = false,
                    StatusCode = 400,
                    Message = WellknownResponseMessages.Falied,
                    Errors = ModelState.AllErrors()
                }));
            }

            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, new ResponseDTO
                {
                    Success = false,
                    StatusCode = 500,
                    Message = WellknownResponseMessages.Falied,
                    Errors = new List <string> {
                        ex.Message + "\r\n" + ex.StackTrace
                    }
                }));
            }
        }