Ejemplo n.º 1
0
        public HttpStatusMessageActionResult UpdateProduct([FromBody]ProductDTO productDTO)
        {
            ApiStatusMessage statusMsg = new ApiStatusMessage();

            try
            {
				Product product = new Product()
				{
					Id = productDTO.Id,
					Name = productDTO.Name,
					Price = productDTO.Price,
					ProductCode = productDTO.ProductCode,
					ImageUrl = productDTO.ImageUrl,
					BrandName = productDTO.BrandName,
					Description = productDTO.Description
				};

				ProductsModule.UpdateProduct(product);

                statusMsg.ApiStatusPlainText = ApiStatusMessages.Product_Update_Success;
                statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.Success;
            }
            catch (Exception e)
            {
                statusMsg.ApiStatusPlainText = ApiStatusMessages.Product_Update_Failure;
                statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.CRUDoperationError;
                statusMsg.StackTrace = e.StackTrace;
            }

            return new HttpStatusMessageActionResult(HttpStatusCode.Accepted, statusMsg, Request);
        }
Ejemplo n.º 2
0
        public async Task<IHttpActionResult> DeleteImage(string fileName)
        {
            ApiStatusMessage statusMsg = new ApiStatusMessage();

            if (!FileExists(fileName))
            {
                statusMsg.ApiStatusPlainText = ApiStatusMessages.Media_Not_Found_Error;
                statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.MediaOperationError;
                return new HttpStatusMessageActionResult(HttpStatusCode.Accepted, statusMsg, Request);
            }

            try
            {
                var filePath = Directory.GetFiles(ImagesBaseDir, fileName)
                  .FirstOrDefault();

                await Task.Factory.StartNew(() =>
                {
                    if (filePath != null)
                        File.Delete(filePath);
                });
                statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.Success;
                statusMsg.ApiStatusPlainText = ApiStatusMessages.Media_Delete_Operation_Success;
            }
            catch (Exception e)
            {
                statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.MediaOperationError;
                statusMsg.ApiStatusPlainText = ApiStatusMessages.Media_Delete_Operation_Error;
                statusMsg.StackTrace = e.StackTrace;
            }

            return new HttpStatusMessageActionResult(HttpStatusCode.Accepted, statusMsg, Request);
        }
		public HttpStatusMessageActionResult(
			HttpStatusCode httpStatusCode,
			ApiStatusMessage statusMessage,
			HttpRequestMessage request)
		{
			HttpStatusCode = httpStatusCode;
			StatusMessage = statusMessage;
			Request = request;
		}
        public HttpStatusMessageActionResult AddPlanType([FromBody]PlanTypeDTO planTypeDTO)
		{
			ApiStatusMessage statusMsg = new ApiStatusMessage();

			try
			{
                if (planTypeDTO.DiscountTypes == null)
                {
                    statusMsg.ApiStatusPlainText = ApiStatusMessages.PlanType_Add_Failure_DiscountTypes_Empty;
                    statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.ModelStateError;
                    statusMsg.Errors = new Dictionary<string, string[]>() {
                        {"DiscountTypes", new string[]{ ApiStatusMessages.PlanType_Add_Failure_DiscountTypes_Empty } }
                    };

					return new HttpStatusMessageActionResult(HttpStatusCode.Accepted, statusMsg, Request);
				}

                PlanType planType = new PlanType()
                {
                    Name = planTypeDTO.Name,
                    Price = planTypeDTO.Price,
                    Duration = planTypeDTO.Duration,
                    DiscountTypes = planTypeDTO.DiscountTypes.Select(dt => new DiscountType()
                    {
                        Name = dt.Name,
                        ProductId = dt.Product.Id,
                        Rounds = dt.Rounds
                    }).ToList()
                };


                PlansModule.AddPlanType(planType);

				statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.Success;
				statusMsg.ApiStatusPlainText = ApiStatusMessages.PlanType_Add_Success;
			}
			catch (Exception e)
			{
				if (e is EntryAlreadyExistsException)
				{
					statusMsg.ApiStatusPlainText = ApiStatusMessages.PlanType_Add_Failure_PlanType_Already_Exists;
					statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.CRUDoperationError;
				}
				else
				{
					statusMsg.ApiStatusPlainText = ApiStatusMessages.PlanType_Add_Failure;
					statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.CRUDoperationError;
				}

				statusMsg.StackTrace = e.StackTrace;
			}

			return new HttpStatusMessageActionResult(HttpStatusCode.Accepted, statusMsg, Request);
		}
        public HttpGenericActionResult<ICollection<PlanTypeDTO>> GetAllPlanTypes(string locale)
        {
			ICollection<PlanType> planTypes = new List<PlanType>();
			ICollection<PlanTypeDTO> planTypesDTO = new List<PlanTypeDTO>();
            ApiResponseStatusCode apiResponseStatusCode;
			ApiStatusMessage StatusMsg = new ApiStatusMessage();

			try
            {
                planTypes = PlansModule.GetAllPlanTypes(locale);

				if(planTypes == null)
				{
					throw new ArgumentNullException();
				}
				
				planTypesDTO = planTypes.Select(pt => new PlanTypeDTO
				{
					Id = pt.Id,
					Name = pt.Name,
					Price = pt.Price,
					Duration = pt.Duration,
					DiscountTypes = pt.DiscountTypes.Select(dt => new DiscountTypeDTO
					{
						Id = dt.Id,
						Name = dt.Name,
						Rounds = dt.Rounds,
						Product = new ProductDTO()
						{
							Id = dt.Product.Id,
                            Name = dt.Product.Name,
							Price = dt.Product.Price,
							Description = dt.Product.Description,
							ImageUrl = dt.Product.ImageUrl,
							BrandName = dt.Product.BrandName,
							ProductCode = dt.Product.ProductCode,
						}
					}).ToList()
				})
				.ToList();

				apiResponseStatusCode = ApiResponseStatusCode.Success;
            }
            catch (Exception e)
            {
				StatusMsg.StackTrace = e.InnerException.StackTrace;
				StatusMsg.ApiStatusPlainText = e.InnerException.Message;
				apiResponseStatusCode = ApiResponseStatusCode.CRUDoperationError;
            }

            return new HttpGenericActionResult<ICollection<PlanTypeDTO>>(apiResponseStatusCode, HttpStatusCode.Accepted, planTypesDTO, Request, StatusMsg);
        }
		protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
		{
			try
			{
				return await base.SendAsync(request, cancellationToken);
			}
			catch (Exception ex)
			{
				ApiStatusMessage StatusMsg = new ApiStatusMessage()
				{
					ApiStatusPlainText = ApiStatusMessages.API_Exception_MSG_DEFAULT,
					StackTrace = ex.StackTrace
				};
				ApiResultWrapper<ApiStatusMessage> ErrorMsg = new ApiResultWrapper<ApiStatusMessage>(ApiResponseStatusCode.ModelStateError, StatusMsg);

				return request.CreateResponse(HttpStatusCode.OK, ErrorMsg);
			}
		}
Ejemplo n.º 7
0
		public override void OnActionExecuting(HttpActionContext actionContext)
		{
			if (!actionContext.ModelState.IsValid && actionContext.Request.Method != HttpMethod.Get)
			{
				Dictionary<string, string[]> errors = actionContext.ModelState.Where(kvp => kvp.Value.Errors.Count > 0).ToDictionary(
					kvp => ExtractKeyPropertyOnly(kvp.Key),
					kvp => kvp.Value.Errors.Select(e => e.ErrorMessage)
				.ToArray());

				ApiStatusMessage StatusMsg = new ApiStatusMessage()
				{
					ApiResponseStatusCode = ApiResponseStatusCode.ModelStateError,
                    ApiStatusPlainText = ApiStatusMessages.Model_State_Error,
					Errors = errors
				};

				actionContext.Response = actionContext.Request.CreateResponse<ApiStatusMessage>(HttpStatusCode.OK, StatusMsg);
			}
		}
		public HttpGenericActionResult<ICollection<Product>> GetAll(string locale)
		{
			ICollection<Product> products = new List<Product>();
			ApiResponseStatusCode apiResponseStatusCode;
			ApiStatusMessage StatusMsg = new ApiStatusMessage();

			try
			{
				products = ProductsModule.GetAllProducts(locale);
				apiResponseStatusCode = ApiResponseStatusCode.Success;
			}
			catch (Exception e)
			{
				StatusMsg.StackTrace = e.InnerException.StackTrace;
				StatusMsg.ApiStatusPlainText = e.InnerException.Message;
				apiResponseStatusCode = ApiResponseStatusCode.CRUDoperationError;
			}

			return new HttpGenericActionResult<ICollection<Product>>(apiResponseStatusCode, HttpStatusCode.Accepted, products, Request, StatusMsg);
		}
        public HttpStatusMessageActionResult UpdateTranslation([FromBody]Translation translation)
        {
            ApiStatusMessage statusMsg = new ApiStatusMessage();

            try
            {
                TranslationsModule.UpdateTranslation(translation);

                statusMsg.ApiStatusPlainText = ApiStatusMessages.Translation_Update_Success;
                statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.Success;
            }
            catch (Exception e)
            {
                statusMsg.ApiStatusPlainText = ApiStatusMessages.Translation_Update_Failure;
                statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.CRUDoperationError;
                statusMsg.StackTrace = e.StackTrace;
            }

            return new HttpStatusMessageActionResult(HttpStatusCode.Accepted, statusMsg, Request);
        }
        public HttpGenericActionResult<ICollection<Translation>> GetAll()
        {
            ICollection<Translation> translations = new List<Translation>();
            ApiResponseStatusCode apiResponseStatusCode;
			ApiStatusMessage StatusMsg = new ApiStatusMessage();

			try
            {
                translations = TranslationsModule.GetAllTranslations();
                apiResponseStatusCode = ApiResponseStatusCode.Success;
            }
            catch (Exception e)
            {
				StatusMsg.StackTrace = e.InnerException.StackTrace;
				StatusMsg.ApiStatusPlainText = e.InnerException.Message;
				apiResponseStatusCode = ApiResponseStatusCode.CRUDoperationError;
            }

            return new HttpGenericActionResult<ICollection<Translation>>(apiResponseStatusCode, HttpStatusCode.Accepted, translations, Request, StatusMsg);
        }
Ejemplo n.º 11
0
		public HttpStatusMessageActionResult AddProduct([FromBody]ProductDTO productDTO)
		{
			ApiStatusMessage statusMsg = new ApiStatusMessage();

			try
			{
				Product product = new Product()
				{
					Name = productDTO.Name,
					Price = productDTO.Price,
					ProductCode = productDTO.ProductCode,
					ImageUrl = productDTO.ImageUrl,
					BrandName = productDTO.BrandName,
					Description = productDTO.Description
				};

				ProductsModule.AddProduct(product);

				statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.Success;
				statusMsg.ApiStatusPlainText = ApiStatusMessages.Product_Add_Success;
			}
			catch (Exception e)
			{
				if (e is EntryAlreadyExistsException)
				{
					statusMsg.ApiStatusPlainText = ApiStatusMessages.Product_Add_Failure_Product_Already_Exists;
				}
				else
				{
					statusMsg.ApiStatusPlainText = ApiStatusMessages.Product_Add_Failure;
				}
				statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.CRUDoperationError;
				statusMsg.StackTrace = e.StackTrace;
			}

			return new HttpStatusMessageActionResult(HttpStatusCode.Accepted, statusMsg, Request);
		}
Ejemplo n.º 12
0
		public IHttpActionResult UpdateCustomer([FromBody]CustomerDTO customerDTO)
        {
			ApiStatusMessage statusMsg = new ApiStatusMessage();
			ICollection<Plan> plans = null;

			try
			{
				Customer customer = new Customer()
				{
					Id = customerDTO.Id,
					Name = customerDTO.Name,
					FamilyName = customerDTO.FamilyName,
					Street = customerDTO.Street,
					ZipCode = customerDTO.ZipCode,
					City = customerDTO.City,
					CountryCode = customerDTO.CountryCode,
					PhoneNumber = customerDTO.PhoneNumber,
					Email = customerDTO.Email
				};

				//if (customerDTO.PlanTypes != null && customerDTO.PlanTypes.Count > 0)
				//{
				//	plans = customerDTO.PlanTypes.Select(pt => new Plan()
				//	{
				//		CustomerId = customer.Id,
				//		PlanTypeId = pt.Id,
				//		DateCreated = DateTime.Now,
				//		DateEnds = DateTime.Now.AddDays(pt.Duration),

				//		Discounts = pt.DiscountTypes.Select(dt => new Discount()
				//		{
				//			DiscountTypeId = dt.Id,
				//			IsActive = false,
				//			RoundsCounter = dt.Rounds,							
				//			DateCreated = DateTime.Now,
				//			DateEnds = DateTime.Now.AddDays(pt.Duration)
				//		}).ToList()
				//	})
				//	.ToList();
				//}

				CustomersModule.UpdateCustomer(customer, plans);
				statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.Success;
				statusMsg.ApiStatusPlainText = ApiStatusMessages.Customer_Update_Success;
			}
            catch(Exception e)
            {
				statusMsg.ApiStatusPlainText = ApiStatusMessages.Customer_Update_Failure;
				statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.CRUDoperationError;
                statusMsg.StackTrace = e.StackTrace;
            }

            return new HttpStatusMessageActionResult(HttpStatusCode.Accepted, statusMsg, Request);
        }
Ejemplo n.º 13
0
        /// <summary>
        ///   Add a photo
        /// </summary>
        /// <returns></returns>
        public async Task<IHttpActionResult> AddImage()
        {
            ApiStatusMessage statusMsg = new ApiStatusMessage();

            // Check if the request contains multipart/form-data.
            if (!Request.Content.IsMimeMultipartContent("form-data"))
            {
                statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.MediaOperationError;
                statusMsg.ApiStatusPlainText = ApiStatusMessages.Media_Not_Containing_Multipart_Error;
                return new HttpStatusMessageActionResult(HttpStatusCode.Accepted, statusMsg, Request);
            }

            try
            {
                CustomMultipartFormDataStreamProvider provider = new CustomMultipartFormDataStreamProvider(ImagesBaseDir);

                await Request.Content.ReadAsMultipartAsync(provider);                
                statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.Success;
                statusMsg.ApiStatusPlainText = ApiStatusMessages.Media_Save_Operation_Success;
            }
            catch (Exception e)
            {
                statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.MediaOperationError;
                statusMsg.ApiStatusPlainText = ApiStatusMessages.Media_Save_Operation_Error;
                statusMsg.StackTrace = e.StackTrace;
            }

            return new HttpStatusMessageActionResult(HttpStatusCode.Accepted, statusMsg, Request);
        }
Ejemplo n.º 14
0
        public HttpStatusMessageActionResult DeletePlanType(int id)
        {
            ApiStatusMessage statusMsg = new ApiStatusMessage();

            try
            {
                PlansModule.DeletePlanType(id);

                statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.Success;
                statusMsg.ApiStatusPlainText = ApiStatusMessages.PlanType_Delete_Success;
            }
            catch (Exception e)
            {
				if (e is RelatedEntityExistsException)
				{
					statusMsg.ApiStatusPlainText = ApiStatusMessages.Related_Plan_Entity_Exists;
					statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.CRUDoperationError;
				}
				else
				{
					statusMsg.ApiStatusPlainText = ApiStatusMessages.PlanType_Add_Failure;
					statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.CRUDoperationError;
				}

                statusMsg.StackTrace = e.StackTrace;
            }

            return new HttpStatusMessageActionResult(HttpStatusCode.Accepted, statusMsg, Request);
        }
Ejemplo n.º 15
0
        public HttpStatusMessageActionResult DeleteProduct(int id)
        {
            ApiStatusMessage statusMsg = new ApiStatusMessage();

            try
            {
                ProductsModule.DeleteProduct(id);

                statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.Success;
                statusMsg.ApiStatusPlainText = ApiStatusMessages.Product_Delete_Success;
            }
            catch (Exception e)
            {
                statusMsg.ApiStatusPlainText = ApiStatusMessages.Product_Delete_Failure;
                statusMsg.ApiResponseStatusCode = ApiResponseStatusCode.CRUDoperationError;
                statusMsg.StackTrace = e.StackTrace;
            }

            return new HttpStatusMessageActionResult(HttpStatusCode.Accepted, statusMsg, Request);
        }