Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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
            }));
        }
Esempio n. 3
0
 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
     });
 }
Esempio n. 4
0
 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);
 }
Esempio n. 5
0
        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
            }));
        }
Esempio n. 6
0
 public bool GetListSegments(ChimpUserListDTO token)
 {
     token.Segments = ChimpListSegmentRepository.GetMany(x => x.ListId == token.ListId).Select(x => x.Entity2SegmentDto()).ToList();
     return(token.Segments.Count > 0);
 }