public IHttpActionResult Post([FromBody] SubscriptionPlanDTO value)
        {
            var plan = Mapper.Map <SubscriptionPlan>(value);

            try
            {
                UnitOfWork.SubscriptionPlansRepository.InsertOrUpdate(plan);
                UnitOfWork.Save();

                MemoryCacher.Delete(CACHE_KEY);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
        public IHttpActionResult Put(Guid id, [FromBody] SubscriptionPlanDTO value)
        {
            if (id == Guid.Empty)
            {
                return(BadRequest("id is empty"));
            }

            var plan = UnitOfWork.SubscriptionPlansRepository.Find(id);

            if (plan == null)
            {
                return(NotFound());
            }

            try
            {
                plan.Name         = value.Name;
                plan.Description  = value.Description;
                plan.Price        = value.Price;
                plan.Length       = value.Length;
                plan.IsLimited    = value.IsLimited;
                plan.MonthlyQuota = value.MonthlyQuota;
                plan.PdfExport    = value.PdfExport;
                plan.ZipExport    = value.ZipExport;

                UnitOfWork.SubscriptionPlansRepository.InsertOrUpdate(plan);
                UnitOfWork.Save();

                MemoryCacher.DeleteListAndItem(CACHE_KEY, id);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }