예제 #1
0
        public ComplaintFullView GetById(int id)
        {
            ComplaintFullView complaintDetails = new ComplaintFullView();
            var complaint = unitWork.ComplaintRepository.GetWithInclude(c => c.Id == id, new string[] { "Complainant", "District", "SDC", "Category", "Documents" }).FirstOrDefault();

            if (complaint != null)
            {
                complaintDetails = new ComplaintFullView()
                {
                    Id                 = complaint.Id,
                    ComplainantId      = complaint.Complainant.Id,
                    Complainant        = complaint.Complainant.FullName,
                    ComplainantNIC     = complaint.Complainant.NIC,
                    ComplainantMobile  = complaint.Complainant.Mobile,
                    ComplainantAddress = complaint.Complainant.Address,
                    ContactMedium      = (ComplaintFullView.CommunicationMedium)complaint.Complainant.ContactMedium,
                    SDC                = complaint.SDC.Title,
                    Category           = complaint.Category.Name,
                    District           = complaint.District.Name,
                    Status             = (ComplaintFullView.ComplaintStatus)complaint.Status,
                    Documents          = null,
                    Dated              = complaint.Dated
                };
            }
            return(complaintDetails);
        }
        public async Task <ActionResult> Details(int id)
        {
            int  validId = 0;
            bool valid   = int.TryParse(id.ToString(), out validId);

            if (!valid || validId == 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ComplaintFullView complaint = new ComplaintFullView();
            var responseMessage         = await client.GetAsync(apiBaseUrl + "/Complaint/" + id);

            if (responseMessage.IsSuccessStatusCode)
            {
                var responseData = responseMessage.Content.ReadAsStringAsync().Result;
                complaint = JsonConvert.DeserializeObject <ComplaintFullView>(responseData);
                if (complaint == null)
                {
                    ViewBag.Error = responseMessage.Content.ReadAsStringAsync().Result;
                }
                else
                {
                    responseMessage = await client.GetAsync(apiBaseUrl + "/File/" + id);

                    if (responseMessage.IsSuccessStatusCode)
                    {
                        responseData = responseMessage.Content.ReadAsStringAsync().Result;
                        var documentsList = JsonConvert.DeserializeObject <ViewDataUploadFilesResult[]>(responseData);
                        if (documentsList != null)
                        {
                            complaint.Documents = documentsList.ToList();
                        }
                    }
                }
            }
            else
            {
                ViewBag.Error = responseMessage.Content.ReadAsStringAsync().Result;
            }
            return(View(complaint));
        }