public HttpResponseMessage Login(CustomerView view)
        {
            var original = this._context.customers.FirstOrDefault(p => p.emailAddress == view.emailAddress);

            if (original == null)
            {
                return Request.CreateResponse(HttpStatusCode.NotFound);
            }
            else if (view.password == original.password)
            {
                if (original.GetType().BaseType == typeof(CustomerPrivate))
                {
                    var temp = (CustomerPrivate)original;
                    var data = new CustomerPrivateView(temp);
                    return Request.CreateResponse(HttpStatusCode.OK, data);
                }
                else
                {
                    var temp = (CustomerCompany)original;
                    var data = new CustomerCompanyView(temp);
                    return Request.CreateResponse(HttpStatusCode.OK, data);
                }
            }
            else
            {
                return Request.CreateResponse(HttpStatusCode.NotFound);
            }
        }
        public HttpResponseMessage Create(CustomerCompanyView view)
        {
            if (ModelState.IsValid)
            {
                var customer = this._context.companyCustomers.FirstOrDefault(c => c.organisationNumber == view.organisationNumber);

                if (customer == null)
                {
                    try
                    {
                        view.created = DateTime.UtcNow.ToString();
                        view.updated = DateTime.UtcNow.ToString();
                        view.enabled = true;

                        var original = view.convert(this._context);
                        this._context.companyCustomers.Add(original);
                        this._context.SaveChanges();

                        view.id = original.id;

                        HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, view);
                        //response.Headers.Location = new Uri(Url.Link("Default", new { id = performer.performerID }));
                        return response;
                    }
                    catch (Exception ex)
                    {
                        return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
                    }
                }
                else if (customer.emailAddress == view.emailAddress)
                {
                    // update customer

                    HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, view);
                    return response;
                }
                else
                {
                    return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
                }
            }
            else
            {
                return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
            }
        }