コード例 #1
0
        public HttpResponseMessage GetCustomerByIdAndCity(int customerId, string city)
        {
            try
            {
                var result = CustomerServiceDb.Customers
                             .Where(customer => customer.Id == customerId && customer.Address.City == city).SingleOrDefault();
                var message = "";
                var errors  = new List <string>();

                if (result == null)
                {
                    message = "no results found";
                }
                var customerResponse = new CustomerResponseModel()
                {
                    Message = message,
                    Errors  = null,
                    Result  = result
                };

                return(Request.CreateResponse(HttpStatusCode.OK, customerResponse));
            }
            catch (Exception e)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e));
            }
        }
コード例 #2
0
        public ActionResult <CustomerResponseModel> GetCustomer([FromRoute] string id)
        {
            _ = Guid.TryParse(id, out Guid result);

            var response = new CustomerResponseModel
            {
                CustomerId = result,
                FirstName  = "Gimil",
                SecondName = "Sin"
            };

            return(response);
        }
コード例 #3
0
        public HttpResponseMessage GetCustomerById(int customerId)
        {
            try
            {
                //attempt to get the requested customer
                var results = CustomerServiceDb.Customers.Where(customer => customer.Id == customerId).SingleOrDefault();
                //initialize the model to pass back in our response
                var customerResponse = new CustomerResponseModel();

                //check if we got results back
                if (results == null)
                {
                    //populate our model to reflect no results found
                    customerResponse.Message = "no results found.";
                    customerResponse.Result  = null;
                    customerResponse.Errors  = null;
                }
                else
                {
                    //extract the customer's address
                    var address = results.Address;

                    var slimAddressDto = address == null
                        ? null
                        : new SlimAddressDto()
                    {
                        City   = address.City,
                        Unit   = address.Unit,
                        Street = address.Street
                    };

                    customerResponse.Result = new SlimCustomerDto()
                    {
                        FirstName = results.FirstName,
                        Age       = results.Age,
                        Email     = results.Email,
                        Address   = slimAddressDto
                    };
                }
                return(Request.CreateResponse(HttpStatusCode.OK, customerResponse));
            }
            catch (Exception e)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e));
            }
        }
コード例 #4
0
        /// <summary>Creates an <see cref="T:System.Net.Http.HttpResponseMessage" /> asynchronously.</summary>
        /// <returns>A task that, when completed, contains the <see cref="T:System.Net.Http.HttpResponseMessage" />.</returns>
        /// <param name="cancellationToken">The token to monitor for cancellation requests.</param>
        public Task <HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
        {
            var responseContent = new CustomerResponseModel()
            {
                Errors  = Errors,
                Message = Message,
                Result  = Result
            };

            var response = new HttpResponseMessage()
            {
                Content        = new ObjectContent(responseContent.GetType(), responseContent, new JsonMediaTypeFormatter()),
                StatusCode     = StatusCode,
                RequestMessage = Request
            };

            return(Task.FromResult(response));
        }
コード例 #5
0
        /// <summary>
        /// Append tags to specific user.
        /// </summary>
        /// <param name="customer_id"></param>
        /// <param name="tags"></param>
        /// <returns></returns>
        public async Task <CustomerResponseModel> AppendTags(string customer_id, string tags)
        {
            var customer = new CustomerResponseModel();

            // Get cutomer

            var originalTags = new List <string>(customer.customer.tags.Split(","));
            var newTags      = new List <string>(tags.Split(","));

            // Append tags (if new)
            foreach (var tag in newTags)
            {
                // new?
                var duplicateTag = (from d in originalTags where d == tag select d).FirstOrDefault();

                if (duplicateTag == null)
                {
                    // Then new, so append
                    originalTags.Add(tag);
                }
            }

            // Call API
            _client.DefaultRequestHeaders.Accept.Clear();
            _client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));

            var updateRequestModel = new CustomerUpdateModel()
            {
                id   = Int64.Parse(customer_id),
                tags = string.Join(",", originalTags)
            };

            var apiRespose = await _client.PutAsync(_baseUrl + "customers/" + customer_id + ".json", new StringContent(JsonSerializer.Serialize(updateRequestModel)));

            if (apiRespose.IsSuccessStatusCode)
            {
                customer = await JsonSerializer.DeserializeAsync <CustomerResponseModel>(await apiRespose.Content.ReadAsStreamAsync());
            }

            return(customer);
        }
コード例 #6
0
        public HttpResponseMessage Remove(int customerId)
        {
            var errors     = new List <string>();
            var message    = "";
            var statusCode = HttpStatusCode.OK;

            try
            {
                var customerToRemove =
                    CustomerServiceDb.Customers.SingleOrDefault(customer => customer.Id == customerId);

                if (customerToRemove == null)
                {
                    message = "customer id not found";
                }
                else
                {
                    CustomerServiceDb.Customers.Remove(customerToRemove);
                    CustomerServiceDb.SaveChanges();
                    message = "success";
                }
            }
            catch (Exception e)
            {
                statusCode = HttpStatusCode.InternalServerError;
                message    = "failed to remove customer";
                errors.Add(e.Message);
            }

            var response = new CustomerResponseModel()
            {
                Message = message,
                Errors  = errors,
                Result  = null
            };

            return(Request.CreateResponse(statusCode, response));
        }
コード例 #7
0
        public async Task <IActionResult> Update(CustomerResponseModel customer)
        {
            await _customerManager.Update(customer);

            return(Ok());
        }
コード例 #8
0
        public async Task Update(CustomerResponseModel customer)
        {
            Customer customerEntity = this._mapper.Map <CustomerResponseModel, Customer>(customer);

            await this._customerRepository.Update(customerEntity);
        }
コード例 #9
0
        public HttpResponseMessage Update(CustomerUpdateDto updatedCustomer)
        {
            var    errors     = new List <string>();
            var    message    = "";
            var    statusCode = HttpStatusCode.OK;
            object result     = null;

            try
            {
                if (updatedCustomer == null)
                {
                    message    = "valid customer was not provided.";
                    statusCode = HttpStatusCode.BadRequest;
                }
                else if (!ModelState.IsValid)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
                }
                else
                {
                    var customer =
                        CustomerServiceDb.Customers.SingleOrDefault(cust => cust.Id == updatedCustomer.Id);

                    if (customer == null || customer.Id == 0)
                    {
                        message = "customer not found";
                    }
                    else
                    {
                        var address        = customer.Address;
                        var updatedAddress = updatedCustomer.Address;

                        address.City       = updatedAddress.City;
                        address.Street     = updatedAddress.Street;
                        address.Unit       = updatedAddress.Unit;
                        address.State      = updatedAddress.State;
                        address.PostalCode = updatedAddress.PostalCode;

                        customer.Address   = address;
                        customer.Age       = Convert.ToInt32(updatedCustomer.Age);
                        customer.Email     = updatedCustomer.Email;
                        customer.FirstName = updatedCustomer.FirstName;
                        customer.LastName  = updatedCustomer.LastName;

                        CustomerServiceDb.Customers.Attach(customer);
                        CustomerServiceDb.Entry(customer).State = EntityState.Modified;
                        var updateCount = CustomerServiceDb.SaveChanges();

                        if (updateCount > 0)
                        {
                            message = "success";
                            result  = updatedCustomer;
                        }
                        else
                        {
                            message = "no records were updated.";
                        }
                    }
                }
            }
            catch (Exception e)
            {
                statusCode = HttpStatusCode.InternalServerError;
                errors.Add(e.Message);
            }

            var responseModel = new CustomerResponseModel()
            {
                Errors  = errors,
                Message = message,
                Result  = result
            };

            return(Request.CreateResponse(statusCode, responseModel));
        }
コード例 #10
0
        public HttpResponseMessage Create(CustomerSaveDto newCustomer)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }

            try
            {
                var statusCode    = HttpStatusCode.OK;
                var responseModel = new CustomerResponseModel();

                var address = newCustomer.Address;

                var addressDbo = new Address()
                {
                    Street     = address.Street,
                    Unit       = address.Unit,
                    City       = address.City,
                    State      = address.State,
                    PostalCode = address.PostalCode
                };

                var customerDbo = new Customer()
                {
                    FirstName = newCustomer.FirstName,
                    LastName  = newCustomer.LastName,
                    Address   = addressDbo,
                    Age       = Convert.ToInt32(newCustomer.Age),
                    //Address_Id = Convert.ToInt32(newCustomer.Address_Id),
                    CreatedOn = DateTime.Now.ToUniversalTime(),
                    Email     = newCustomer.Email
                };

                CustomerServiceDb.Customers.Add(customerDbo);
                var rowsSaved = CustomerServiceDb.SaveChanges();

                if (rowsSaved > 0)
                {
                    responseModel.Message = "success";
                }

                //if(ModelState.IsValid)

                // var errors = new List<string>();
                //if (newCustomer == null)
                //{
                //    errors.Add("invalid customer.  customer was not added.");
                // }
                //             else
                //           {
                //   Validate(newCustomer);

                //                   if(ModelState.IsValid)

                //var message = "";
                //var isAgeValid = CustomerValidator.ValidateAge(newCustomer.Age, out message);

                //if (!isAgeValid)
                //{
                //    errors.Add(message);
                //}

                //var isFirstNameValid =
                //    CustomerValidator.ValidateFirstName(newCustomer.FirstName, out message);

                //if (!isFirstNameValid)
                //{
                //    errors.Add(message);
                //}

                //var isEmailValid = CustomerValidator.ValidateEmail(newCustomer.Email, out message);

                //if (!isEmailValid)
                //{
                //    errors.Add(message);
                //}

                //Validate

                //if(statusCode == HttpStatusCode.OK)
                {
                    //else errors.Add("unknown error.");
                }
                //}

                //if (errors.Count > 0)
                //{
                //    responseModel.Message = "failed to create customer";
                //    statusCode = HttpStatusCode.BadRequest;
                //}
                //responseModel.Errors = errors;
                return(Request.CreateResponse(statusCode, responseModel));
            }
            catch (Exception e)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e));
            }
        }
コード例 #11
0
        public CustomerResponseModel UpdateCustomer()
        {
            var customer = new CustomerResponseModel();

            return(customer);
        }
コード例 #12
0
        public CustomerResponseModel RemoveTags(string tags)
        {
            var customer = new CustomerResponseModel();

            return(customer);
        }