Example #1
0
        public bool CreateSite(SiteViewModel viewModel, string userId, out string message, out string IdSite)
        {
            bool result = false;

            IdSite  = string.Empty;
            message = string.Empty;

            //Todo
            var    model          = viewModel;
            string protocolSelecc = viewModel.protocoloSelected;

            model.CategoryTypeSelect = viewModel.categorySelected;
            model.URL = String.IsNullOrEmpty(model.URL) ? "-" : (String.IsNullOrEmpty(protocolSelecc) ? "https://" : protocolSelecc) + model.URL;

            //Create site
            CategoryRepository categoryRepository = new CategoryRepository();
            var            allCategory            = categoryRepository.GetAll();
            CategoryEntity _category = allCategory.FirstOrDefault(x => x.IdCategory == model.CategoryTypeSelect);

            AspNetUserRepository aspNetUserRepository = new AspNetUserRepository();
            AspNetUserEntity     _aspnetuser          = aspNetUserRepository.GetAll().FirstOrDefault(x => x.Id == userId);

            SiteEntity _site = new SiteEntity
            {
                Name   = model.Name,
                URL    = model.URL,
                IdSite = Guid.NewGuid(),

                AspNetUsers_Id     = userId,
                Verified           = false,
                VerificationString = Guid.NewGuid().ToString(),
                RegistrationDate   = DateTime.Now,
                IsActive           = true
            };

            SiteRepository siteRepository = new SiteRepository();


            try
            {
                siteRepository.Add(_site);
                CategorySiteEntity categorySiteEntity = new CategorySiteEntity()
                {
                    CATEGORY_IdCategory = _category.IdCategory,
                    SITEs_IdSite        = _site.IdSite
                };

                CategorySiteRepository categorySiteRepository = new CategorySiteRepository();
                categorySiteRepository.Add(categorySiteEntity);


                IdSite  = _site.IdSite.ToString();
                message = "Site created successfully";
                result  = true;
            }
            catch (Exception e)
            {
                message = "Error creating site";
            }
            return(result);
        }
Example #2
0
        public bool SaveProduct(Models.Publisher.CreateProductModel _createModel, string UserIdentity, Models.Core.FileUpload fileUpload)
        {
            //Creamos los repositorios
            SiteRepository        siteRepository        = new SiteRepository();
            AspNetUserRepository  aspNetUserRepository  = new AspNetUserRepository();
            ProductTypeRepository productTypeRepository = new ProductTypeRepository();
            PartnerRepository     partnerRepository     = new PartnerRepository();
            ProductRepository     productRepository     = new ProductRepository();

            //Obtenemos los conjuntos
            List <SiteEntity>        sites        = siteRepository.GetAll().ToList();
            List <AspNetUserEntity>  users        = aspNetUserRepository.GetAll().ToList();
            List <ProductTypeEntity> productstype = productTypeRepository.GetAll().ToList();
            List <PartnerEntity>     partners     = partnerRepository.GetAll().ToList();

            //Obtenemos las entidades deseadas.
            SiteEntity site = (from s in sites
                               where s.IdSite == _createModel.SiteTypeSelecc
                               select s).FirstOrDefault();
            AspNetUserEntity user = (from u in users
                                     where u.Id == UserIdentity
                                     select u).FirstOrDefault();

            ProductTypeEntity productType = (from pr in productstype
                                             where pr.IdProductType == _createModel.ProductTypeSelect
                                             select pr).FirstOrDefault();
            PartnerEntity partner = (from p in partners
                                     where p.IdPartner == _createModel.ParterTypeSelect
                                     select p).FirstOrDefault();

            ProductEntity product = new ProductEntity
            {
                //AspNetUser = user,
                AspNetUsers_Id             = UserIdentity,
                IdProduct                  = Guid.NewGuid(),
                Price                      = _createModel.PriceSelecc,
                ShortDescription           = _createModel.Name,
                FullDescription            = string.Empty,
                StartTime                  = Helpers.DateTimeHelper.GetCurrentDateString(),
                EndTime                    = Helpers.DateTimeHelper.GetCurrentDateString(0, 30),
                RegistrationDate           = DateTime.Now,
                SITE_IdSite                = site.IdSite,
                PRODUCT_TYPE_IdProductType = productType.IdProductType,
                PARTNER_IdPartner          = partner.IdPartner,
                Image                      = string.Empty,
                IsActive                   = true,
                IsPremium                  = _createModel.IsPremium
            };

            if (fileUpload != null)
            {
                product.Image = Helpers.AzureStorageHelper.CreateBlobImageFile(fileUpload.FileData, fileUpload.Filextension);
            }
            else
            {
                product.Image = Helpers.AzureStorageHelper.CreateBlobImageFile(getImageFromUrl(""), ".png");
            }


            productRepository.Add(product);

            if (_createModel.ParterTypeSelect.Equals(new Guid(Utils.Constants.PROVIDER_SUBSCRIBERS)) ||
                _createModel.ParterTypeSelect.Equals(new Guid(Utils.Constants.PROVIDER_PUSH_CREW)) ||
                _createModel.ParterTypeSelect.Equals(new Guid(Utils.Constants.PROVIDER_PUSH_ENGAGE)))
            {
                AddProductSettingEntity(product, "pushApiToken", _createModel.Token);
            }
            else if (_createModel.ParterTypeSelect.Equals(new Guid(Utils.Constants.PROVIDER_MAIL_CHIMP)))
            {
                AddProductSettingEntity(product, "mailChimpApiToken", _createModel.Token);
                AddProductSettingEntity(product, "mailChimpList", _createModel.ListMCSelecc);
                AddProductSettingEntity(product, "mailChimpTemplate", Convert.ToString(_createModel.TemplateMCSelecc));
            }
            else if (_createModel.ParterTypeSelect.Equals(new Guid(Utils.Constants.PROVIDER_CAMPAIGN_MONITOR)))
            {
                AddProductSettingEntity(product, "campaignMonitorApiToken", _createModel.Token);
                AddProductSettingEntity(product, "campaignMonitorList", _createModel.ListCMSelecc);
                AddProductSettingEntity(product, "campaignMonitorClient", Convert.ToString(_createModel.ClientCMSelecc));
                AddProductSettingEntity(product, "campaignMonitorSegment", Convert.ToString(_createModel.SegmentCMSelecc));
            }
            else if (_createModel.ParterTypeSelect.Equals(new Guid(Utils.Constants.PROVIDER_AWEBER)))
            {
                AddProductSettingEntity(product, "aweberApiToken", _createModel.Token);
                AddProductSettingEntity(product, "aweberList", _createModel.ListAWSelecc);
                AddProductSettingEntity(product, "aweberApplicationKey", _createModel.providerAWeberApiResult.ApplicationKey);
                AddProductSettingEntity(product, "aweberApplicationSecret", _createModel.providerAWeberApiResult.ApplicationSecret);
                AddProductSettingEntity(product, "aweberOAuthToken", _createModel.providerAWeberApiResult.OAuthToken);
                AddProductSettingEntity(product, "aweberOAuthTokenSecret", _createModel.providerAWeberApiResult.OAuthTokenSecret);
                AddProductSettingEntity(product, "aweberOauthVerifier", _createModel.providerAWeberApiResult.OauthVerifier);
                AddProductSettingEntity(product, "aweberCallbackURL", _createModel.providerAWeberApiResult.CallbackURL);
            }
            else if (_createModel.ParterTypeSelect.Equals(new Guid(Utils.Constants.PROVIDER_SEND_GRID)))
            {
                AddProductSettingEntity(product, "sendGridApiToken", _createModel.Token);
                AddProductSettingEntity(product, "sendGridList", _createModel.ListSGSelecc);
                AddProductSettingEntity(product, "sendGridSender", _createModel.SenderSGSelecc);
                AddProductSettingEntity(product, "sendGridUnsubscribeGroup", _createModel.UnsubscribeGroupSGSelecc);
            }
            else if (_createModel.ParterTypeSelect.Equals(new Guid(Utils.Constants.PROVIDER_ACTIVE_CAMPAIGN)))
            {
                AddProductSettingEntity(product, "activeCampaignApiToken", _createModel.Token);
                AddProductSettingEntity(product, "activeCampaignList", _createModel.ListACSelecc);
                AddProductSettingEntity(product, "activeCampaignUrl", _createModel.URLACSelecc);
            }
            else if (_createModel.ParterTypeSelect.Equals(new Guid(Utils.Constants.PROVIDER_GETRESPONSE)))
            {
                AddProductSettingEntity(product, "getResponseApiToken", _createModel.Token);
                AddProductSettingEntity(product, "getResponseList", _createModel.ListGRSelecc);
                AddProductSettingEntity(product, "getResponseFromField", _createModel.FromFieldGRSelecc);
            }
            else if (_createModel.ParterTypeSelect.Equals(new Guid(Utils.Constants.PROVIDER_ICONTACT)))
            {
                // Crear campaign y guardar el Id
                string IdCampaign = string.Empty;

                AddProductSettingEntity(product, "icontactIdCampaign", _createModel.IContact.IdCampaign);
                AddProductSettingEntity(product, "icontactApiAppId", _createModel.IContact.ApiAppId);
                AddProductSettingEntity(product, "icontactUserName", _createModel.IContact.ApiUserName);
                AddProductSettingEntity(product, "icontactUserPassword", _createModel.IContact.ApiUserPassword);
                AddProductSettingEntity(product, "icontactAccountId", _createModel.IContact.AccountId);
                AddProductSettingEntity(product, "icontactClientFolderId", _createModel.IContact.ClientFolderId);
                AddProductSettingEntity(product, "icontactIdList", _createModel.IContact.ListId);
            }
            else if (_createModel.ParterTypeSelect.Equals(new Guid(Utils.Constants.PROVIDER_SENDINBLUE)))
            {
                //Store product settings
                AddProductSettingEntity(product, "sendinBlueApiKey", _createModel.Token);
                AddProductSettingEntity(product, "sendinBlueCategory", _createModel.SendinBlue.Category);
                AddProductSettingEntity(product, "sendinBlueFromEmail", _createModel.SendinBlue.FromEmail);
                AddProductSettingEntity(product, "sendinBlueListId", _createModel.SendinBlue.ListIds[0].ToString());
            }
            else if (_createModel.ParterTypeSelect.Equals(new Guid(Utils.Constants.PROVIDER_ONE_SIGNAL)))
            {
                AddProductSettingEntity(product, "oneSignalApiKey", _createModel.Token);
                AddProductSettingEntity(product, "oneSignalAppId", _createModel.ListAppOSSelecc);
                AddProductSettingEntity(product, "oneSignalAppKey", _createModel.AuthAppOSSelecc);
            }
            else if (_createModel.ParterTypeSelect.Equals(new Guid(Utils.Constants.PROVIDER_MAILJET)))
            {
                AddProductSettingEntity(product, "mailJetApiKey", _createModel.Token);
                AddProductSettingEntity(product, "mailJetList", _createModel.ListMJSelecc);
                AddProductSettingEntity(product, "mailJetSegment", _createModel.SegmentMJSelecc);
                AddProductSettingEntity(product, "mailJetSecretKey", _createModel.SecretKeyMJ);
            }

            return(true);
        }