public MarketingPartnerViewModel CreateMarketingPartner(MarketingPartnerViewModel marketingPartner)
        {
            if (marketingPartner == null)
            {
                return null;
            }

            var newMarketingPartner = new MarketingPartner
            {
                Id = marketingPartner.Id,
                Name = marketingPartner.Name,
                Address = marketingPartner.Address,
                PhoneNumber = marketingPartner.PhoneNumber,
                Email = marketingPartner.Email,
                Media = marketingPartner.Media,
                IsVisible = marketingPartner.IsVisible
            };

            this.Data.MarketingPartners.Add(newMarketingPartner);
            this.Data.SaveChanges();

            marketingPartner.Id = newMarketingPartner.Id;

            return marketingPartner;
        }
        public MarketingPartnerViewModel DestroyMarketingPartner(MarketingPartnerViewModel marketingPartner)
        {
            this.Data.MarketingPartners.Delete(marketingPartner.Id);
            this.Data.SaveChanges();

            return marketingPartner;
        }
        public JsonResult DestroyMarketingPartner([DataSourceRequest] DataSourceRequest request, MarketingPartnerViewModel marketingPartner)
        {
            var deletedMarketingPartner = marketingPartners.DestroyMarketingPartner(marketingPartner);

            var loggedUserId = User.Identity.GetUserId();
            Base.CreateActivity(ActivityType.Delete, deletedMarketingPartner.Id.ToString(), ActivityTargetType.MarketingPartner, loggedUserId);

            return Json(new[] { marketingPartner }, JsonRequestBehavior.AllowGet);
        }
        public JsonResult CreateMarketingPartner([DataSourceRequest]  DataSourceRequest request, MarketingPartnerViewModel marketingPartner)
        {
            if (marketingPartner == null || !ModelState.IsValid)
            {
                return Json(new[] { marketingPartner }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
            }

            var createdMarketingPartner = marketingPartners.CreateMarketingPartner(marketingPartner);

            var loggedUserId = User.Identity.GetUserId();
            Base.CreateActivity(ActivityType.Create, createdMarketingPartner.Id.ToString(), ActivityTargetType.MarketingPartner, loggedUserId);

            marketingPartner.Id = createdMarketingPartner.Id;

            return Json(new[] { marketingPartner }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
        }
        public MarketingPartnerViewModel UpdateMarketingPartner(MarketingPartnerViewModel marketingPartner)
        {
            var marketingPartnerFromDb = this.Data.MarketingPartners.All()
                   .FirstOrDefault(p => p.Id == marketingPartner.Id);

            if (marketingPartner == null || marketingPartnerFromDb == null)
            {
                return marketingPartner;
            }

            marketingPartnerFromDb.Id = marketingPartner.Id;
            marketingPartnerFromDb.Name = marketingPartner.Name;
            marketingPartnerFromDb.Address = marketingPartner.Address;
            marketingPartnerFromDb.PhoneNumber = marketingPartner.PhoneNumber;
            marketingPartnerFromDb.Email = marketingPartner.Email;
            marketingPartnerFromDb.Media = marketingPartner.Media;
            marketingPartnerFromDb.IsVisible = marketingPartner.IsVisible;

            this.Data.SaveChanges();

            return marketingPartner;
        }