public static void AddCustomer(Customer customer, ICollection<Plan> plans)
        {
			int customerId = CommonDAL.AddEntity<Customer>(customer, c => c.Name == customer.Name && c.FamilyName == customer.FamilyName && c.Street == customer.Street);

			//if (plans != null && plans.Count > 0)
			//{
			//	using (PosManagerContext ctx = new PosManagerContext())
			//	{
			//		foreach (Plan plan in plans)
			//		{
			//			plan.CustomerId = customerId;
			//			CommonDAL.AddEntity<Plan>(plan, p => p.CustomerId == plan.CustomerId && p.PlanTypeId == plan.PlanTypeId);
			//		}
			//	}
			//}
        }
		public static void UpdateCustomer(Customer customer, ICollection<Plan> plans)
		{
			CommonDAL.UpdateEntity<Customer>(customer);

			//using (PosManagerContext ctx = new PosManagerContext())
			//{
			//	if (plans != null && plans.Count > 0)
			//	{
			//		foreach (Plan plan in plans)
			//		{
			//			if (!plan.EntityExists<Plan>(ctx, p => p.CustomerId == plan.CustomerId && p.PlanTypeId == plan.PlanTypeId))
			//			{
			//				CommonDAL.AddEntity<Plan>(plan, p => p.CustomerId == plan.CustomerId && p.PlanTypeId == plan.PlanTypeId);
			//			}
			//			else
			//			{
			//				CommonDAL.UpdateEntity<Plan>(plan);
			//			}
			//		}
			//	}
			//}
		}
		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);
        }