Ejemplo n.º 1
0
        // 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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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"));
            }
        }
Ejemplo n.º 5
0
        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"));
            }
        }
Ejemplo n.º 6
0
        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;
            }
        }
Ejemplo n.º 7
0
        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));
            }
        }