public Integration MailChimp_Auth(string apiKey, string userId)
        {
            Integration   result = new Integration();
            MailChimpTask task   = new MailChimpTask(apiKey);
            var           res    = task.Auth();

            if (res.Code == System.Net.HttpStatusCode.OK)
            {
                var resultAuth = (AccountResponse)res.Data;
                //save info
                var info = new Integration()
                {
                    Id                = Guid.NewGuid(),
                    SiteId            = (int)IntegrationType.MailChimp,
                    AccId             = resultAuth.account_id,
                    Email             = resultAuth.email,
                    Phone             = resultAuth.phone,
                    ApiKey            = apiKey,
                    UserId            = userId,
                    LastConnectedDate = DateTime.Now
                };
                IU(info, userId);
                result = info;
            }
            else
            {
                throw new BusinessException(res.Message);
            }
            return(result);
        }
        public List <CampainResponseItem> MailChimp_GetCampains(string userId, string accId)
        {
            List <CampainResponseItem> result = new List <CampainResponseItem>();

            var apiSite = _dbSet.AsNoTracking().FirstOrDefault(x => x.UserId == userId && x.AccId == accId);

            if (apiSite == null)
            {
                return(result);
            }
            string apiKey = apiSite.ApiKey;

            MailChimpTask task = new MailChimpTask(apiKey);
            var           res  = task.GetCampaigns();

            if (res.Code == System.Net.HttpStatusCode.OK)
            {
                result = ((CampainResponse)res.Data).lists;
            }
            else
            {
                throw new BusinessException(res.Message);
            }
            return(result);
        }
Пример #3
0
        public async Task <ApiResponse> Refresh(Guid id, string userId)
        {
            ApiResponse res  = new ApiResponse();
            var         site = _dbSet.FirstOrDefault(x => x.Id == id && x.UserId == userId);

            if (site != null)
            {
                switch (site.SiteId)
                {
                case (int)IntegrationType.GetResponse:
                    res = new GetResponseTask(site.ApiKey).Auth();
                    break;

                case (int)IntegrationType.MailChimp:
                    res = new MailChimpTask(site.ApiKey).Auth();
                    break;

                case (int)IntegrationType.Autopilot:
                    res = new AutopilotTask(site.ApiKey).Auth();
                    break;

                case (int)IntegrationType.ActiveCampain:
                    res = new IntegrationServices.ActiveCampain.ActiveCampainTask(site.AccId, site.ApiKey).Auth();
                    break;

                case (int)IntegrationType.InfusionSoft:
                    res = new IntegrationServices.InfusionSoft.InfusionSoftTask(site.ApiKey, site.Password).GetCampaigns();
                    if (res.Code == System.Net.HttpStatusCode.Unauthorized)
                    {
                        var newToken = new IntegrationServices.InfusionSoft.InfusionSoftTask(site.ApiKey, site.Password).Refresh();
                        if (newToken != null && !string.IsNullOrEmpty(newToken.access_token))
                        {
                            site.ApiKey = newToken.access_token;
                            this.Commit();
                            res.Code = System.Net.HttpStatusCode.OK;
                        }
                    }
                    break;

                case (int)IntegrationType.Gmail:
                    res = new EmailServices.GmailPersonalSvc(site.ApiKey, site.TokenJson).Auth();
                    break;

                case (int)IntegrationType.GoogleSheet:
                    res = new EmailServices.GoogleSheetSvc(site.ApiKey, site.TokenJson).Auth();
                    break;

                case (int)IntegrationType.Wordpress:
                    res = new Utils.WordpressUtils(site.AccId, site.ApiKey).Auth();
                    if (res.Code == System.Net.HttpStatusCode.NotFound)
                    {
                        throw new BusinessException("Không kiểm tra được kết nối WP. Cấu hình này được dùng để xuất bản từ phía WP");
                    }
                    break;

                case (int)IntegrationType.Shopify:
                    res = await new ShopifyService.ShopifyService(site.AccId, site.ApiKey).CountPage();
                    break;

                case (int)IntegrationType.Haravan:
                    res = await new HaravanService.HaravanService(site.ApiKey).CountPage();
                    break;

                case (int)IntegrationType.Sapo:
                    res = await new SapoService.SapoService(site.AccId, site.ApiKey).CountPage();
                    break;

                case (int)IntegrationType.Sms:
                    string sim     = string.IsNullOrEmpty(site.AccId) == false ? "sim1" : "sim2";
                    var    profile = uow.UserProfile.Get(userId);
                    var    mobile  = profile == null ? "0968152579" : profile.Mobile;
                    var    r       = new Services.SmsService().Send(site.Phone, site.Password, sim, mobile, $"Chao {profile.FullName}. Punnel sms dang dung tot nhe");
                    if (r == true)
                    {
                        res.Code = System.Net.HttpStatusCode.OK;
                    }
                    else
                    {
                        res.Code    = System.Net.HttpStatusCode.BadRequest;
                        res.Message = "Thiết thị không thể gửi tin nhắn sms. Vui lòng kiểm tra lại thiết bị & ứng dụng SMS đã cài đặt";
                    }
                    break;
                }
                if (res.Code != System.Net.HttpStatusCode.OK)
                {
                    site.IsExpired = true;
                    this.Commit();
                }
                else
                {
                    site.IsExpired = false;
                    this.Commit();
                }
            }
            return(res);
        }