public bool SaveUserList(ChimpUserListDTO token, out string error) { try { var entityList = ChimpUserListRepository.GetMany(x => x.ApiKey == token.ApiKey && x.Uid == token.Uid).ToList(); if (entityList.Count == 0) { if (!ValidateUserCredentials(token, out error)) { return(false); } var entity = token.Token2UserListEntity(); ChimpUserListRepository.Add(entity); if (!ChimpUserListRepository.UnitOfWork.CommitAndRefreshChanges(out error)) { return(false); } token.ListId = entity.ListId; return(true); } error = "record already exists"; return(false); } catch (Exception exception) { error = string.Format("SaveUserList exception::{0}", FormatError(exception)); Logger.Error("SaveUserList", exception, CommonEnums.LoggerObjectTypes.Mailchimp); return(false); } }
public ActionResult RefreshSegments(ChimpUserListDTO token) { string error; token.IsValid = _mailchimpServices.SaveListSegment(token.ListId, out error); if (!token.IsValid) { return(RedirectToIndex(new SubmitToken { IsValid = false, Message = string.Format("Segments error: {0}", error) })); } token.IsValid = _mailchimpServices.SaveListSubscribers(token.ListId, out error); if (!token.IsValid) { return(RedirectToIndex(new SubmitToken { IsValid = false, Message = string.Format("Subscribers error: {0}", error) })); } SaveUserEvent(CommonEnums.eUserEvents.MAILCHIMP_REFRESHED); return(RedirectToIndex(new SubmitToken { IsValid = true })); }
public static CHIMP_UserLists Token2UserListEntity(this ChimpUserListDTO token) { return(new CHIMP_UserLists { AddOn = DateTime.Now, ApiKey = token.ApiKey, CreatedBy = token.UserId, Uid = token.Uid, IsActive = true, UserId = token.UserId }); }
private bool ValidateUserCredentials(ChimpUserListDTO token, out string error) { error = string.Empty; try { var mc = new MailChimpManager(token.ApiKey); mc.GetStaticSegmentsForList(token.Uid); // throws if no such list } catch (Exception e) { error = FormatError(e); return(false); } return(true); }
public ActionResult Submit(ChimpUserListDTO token) { if (!ModelState.IsValid) { return(View("Login", token)); } string error; token.UserId = CurrentUserId; token.IsValid = _mailchimpServices.SaveUserList(token, out error); if (!token.IsValid) { token.Message = string.Format("Credentials error: {0}", error); return(View("Login", token)); } token.IsValid = _mailchimpServices.SaveListSegment(token.ListId, out error); if (!token.IsValid) { return(RedirectToIndex(new SubmitToken { IsValid = false, Message = string.Format("Segments error: {0}", error) })); } token.IsValid = _mailchimpServices.SaveListSubscribers(token.ListId, out error); if (!token.IsValid) { return(RedirectToIndex(new SubmitToken { IsValid = false, Message = string.Format("Subscribers error: {0}", error) })); } SaveUserEvent(CommonEnums.eUserEvents.MAILCHIMP_CONNECTED); return(RedirectToIndex(new SubmitToken { IsValid = true })); }
public bool GetListSegments(ChimpUserListDTO token) { token.Segments = ChimpListSegmentRepository.GetMany(x => x.ListId == token.ListId).Select(x => x.Entity2SegmentDto()).ToList(); return(token.Segments.Count > 0); }