// Get Employee of who provided Solution to the provided queryID public async Task <Employee> GetEmployeeProvidedSolutionForAsync(int queryId) { Employee employee = null; // Get QueryMast of the queryId QueryMaster qm = await _context.QueryMasters .Include(a => a.QueryAssigns) .Where(d => d.QueryId == queryId && d.Status == QueryStatus.Resolved) .FirstOrDefaultAsync(); if (qm != null) { if (qm.QueryAssigns != null && (qm.QueryAssigns != null && qm.QueryAssigns.Count > 0)) { // Get the latest QueryAssign QueryAssign qa = qm.QueryAssigns.OrderByDescending(q => q.ResponseDate).FirstOrDefault(); if (qa != null) { // Retrieve Employee details employee = _context.Employees.FirstOrDefault(e => e.EmployeeId == qa.EmployeeId); } qa = null; } } qm = null; return(employee); }
public static QueryAssign ConvertToQueryAssign(QueryAssignViewModel assign) { QueryAssign qa = new QueryAssign(); qa.Id = assign.Id; qa.QueryId = assign.QueryId; qa.CustomerId = assign.CustomerId; qa.EmployeeId = assign.EmployeeId; qa.ResponseDate = assign.ResponseDate; qa.Message = assign.Message; qa.FromCustOrEmp = assign.FromCustOrEmp; return(qa); }
public async Task <bool> AddNewQueryAssign(int queryId, QueryAssign queryAssign) { EntityEntry <QueryAssign> track = await _context.QueryAssigns.AddAsync(queryAssign); Console.WriteLine("QA ADDED : " + track.Entity.Id); int x = await _context.SaveChangesAsync(); QueryMaster qm = await _context.QueryMasters.FindAsync(queryId); qm.Status = QueryStatus.Resolved; x = await _context.SaveChangesAsync(); return(x > 0 ? true : false); }
public async Task <IActionResult> PostNewQueryAssign(QueryAssignViewModel qaVM) { if (!ModelState.IsValid) { return(BadRequest("Not a valid model")); } // Convert VM to QueryAssign Model QueryAssign qa = qaVM.ConvertToQueryAssign(); bool added = await queryContext.AddNewQueryAssign(qa.QueryId, qa); if (added) { return(CreatedAtAction("PostNewQueryAssign", "Created")); } else { return(BadRequest("Server Error: Failed to add New Assign to Query")); } }
public async Task <IActionResult> GetQueryFAQ(int deptId = 0) { if (deptId < 1) { return(null); } // Check for Dept Id if (!commonContext.DeptExists(deptId)) { return(BadRequest("Invalid or Department doesn't exists.")); } List <QueryFAQViewModel> faqList = new List <QueryFAQViewModel>(); // Get QueryMasters of specific Dept List <QueryMaster> queryMasters = await queryContext.GetResolvedQuerysOfDeptAsync(deptId); if (queryMasters.Count > 0) { // From QueryAssign, get the Resolved assign foreach (QueryMaster qm in queryMasters) { if (qm.QueryAssigns != null && (qm.QueryAssigns != null && qm.QueryAssigns.Count > 0)) { QueryAssign qa = qm.QueryAssigns.OrderByDescending(q => q.ResponseDate).FirstOrDefault(); if (qa != null) { faqList.Add(new QueryFAQViewModel(deptId, qm.Message, qa.Message)); } } } queryMasters = null; return(Ok(faqList)); } else { return(NotFound("No Query's found for provided Department")); } }
public QueryAssignViewModel(QueryAssign qa) { Id = qa.Id; QueryId = qa.QueryId; CustomerId = qa.CustomerId; EmployeeId = qa.EmployeeId; ResponseDate = qa.ResponseDate; ResponseDateStr = qa.ResponseDate != null?qa.ResponseDate.ToString("MM/dd/yyyy") : ""; Message = qa.Message; FromCustOrEmp = qa.FromCustOrEmp; if (qa.Query != null) { CustomerName = qa.Query.Customer.FirstName + " " + qa.Query.Customer.LastName; QueryDate = qa.Query.QueryDate; //.ToString("MM/dd/yyyy"); QueryTitle = qa.Query.Title; QueryQuestion = qa.Query.Message; Product = qa.Query.Product; } }
public async Task <IActionResult> GetQuerySolutionForQuery(int queryId = 0) { if (queryId < 1) { return(BadRequest("Invalid Query Id.")); } if (!queryContext.ExistsQueryId(queryId)) { return(NotFound("Query doesn't exists.")); } // Get QueryMaster of specific Dept QueryMaster queryMaster = await queryContext.GetQueryMaster(queryId); if (queryMaster.QueryAssigns.Count == 0) { return(BadRequest("Query doesn't contain any Solution")); } QueryAssign qa = queryMaster.QueryAssigns.OrderByDescending(q => q.ResponseDate).FirstOrDefault(); if (qa != null) { EmployeeViewModel evm = new EmployeeViewModel() { EmployeeId = qa.EmployeeId, FirstName = qa.Employee.FirstName, LastName = qa.Employee.LastName }; return(Ok(new QueryAssignViewModel(qa))); } else { return(NotFound("No Solution found for Query Id : " + queryId)); } }