public DTOTask RetrieveTask([FromBody] DTOTask paramDTOTask)
        {
            int  intUserID       = UtilitySecurity.UserIdFromUserName(this.User.Identity.Name, GetConnectionString());
            bool IsAdministrator = UtilitySecurity.IsAdministrator(this.User.Identity.Name, GetConnectionString());

            return(GetTask(paramDTOTask, intUserID, IsAdministrator, GetConnectionString(), this.User.Identity.Name, this.User.Identity.IsAuthenticated));
        }
        public TaskSearchResult SearchTasks([FromBody] SearchTaskParameters searchData)
        {
            // Get UserID
            int intUserId = UtilitySecurity.UserIdFromUserName(this.User.Identity.Name, GetConnectionString());

            // Determine if user is an Admin
            int iSAdministrator = (UtilitySecurity.IsAdministrator(this.User.Identity.Name, GetConnectionString())) ? 1 : 0;

            return(SearchTasks(searchData, intUserId, iSAdministrator, GetConnectionString()));
        }
Exemplo n.º 3
0
        public DTOUser GetUser([FromRoute] int id)
        {
            DTOUser objDTOUser = new DTOUser();

            // Must be a Administrator to call this Method
            if (!UtilitySecurity.IsAdministrator(this.User.Identity.Name, GetConnectionString()))
            {
                return(objDTOUser);
            }

            return(GetUserMethod(id, GetConnectionString()));
        }
Exemplo n.º 4
0
        public UserSearchResult SearchUsers([FromBody] SearchParameters searchData)
        {
            UserSearchResult objUserSearchResult = new UserSearchResult();

            // Must be a Administrator to call this Method
            if (!UtilitySecurity.IsAdministrator(this.User.Identity.Name, GetConnectionString()))
            {
                objUserSearchResult.errorMessage = "Must be a Administrator to call this Method";
                return(objUserSearchResult);
            }

            return(SearchUsersMethod(searchData, GetConnectionString()));
        }
Exemplo n.º 5
0
        public DTODashboard DashboardValues()
        {
            // Create DTODashboard
            DTODashboard objDTODashboard     = new DTODashboard();
            string       strConnectionString = GetConnectionString();

            // Must be a Administrator to call this Method
            if (!UtilitySecurity.IsAdministrator(this.User.Identity.Name, GetConnectionString()))
            {
                return(objDTODashboard);
            }

            return(ShowDashboard(strConnectionString));
        }
        public IActionResult Delete([FromRoute] int id)
        {
            // Must be a Administrator to call this Method
            if (!UtilitySecurity.IsAdministrator(this.User.Identity.Name, GetConnectionString()))
            {
                return(BadRequest("Must be a Administrator to call this Method"));
            }

            string strResponse = DeleteTask(id, GetConnectionString(), this.User.Identity.Name);

            if (strResponse != "")
            {
                return(BadRequest(strResponse));
            }
            else
            {
                return(NoContent());
            }
        }
        public static DTOTask GetTask(DTOTask paramDTOTask, int intUserID, bool IsAdministrator, string DefaultConnection, string strCurrentUser, bool IsAuthenticated)
        {
            DTOTask objTask = new DTOTask();

            objTask.taskId = -1; // Task Not found
            var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>();

            optionsBuilder.UseSqlServer(DefaultConnection);

            using (var context = new ADefHelpDeskContext(optionsBuilder.Options))
            {
                AdefHelpDeskTasks Result;

                // Perform Search
                if (paramDTOTask.ticketPassword != "")
                {
                    // Using ticketPassword
                    Result = (from task in context.AdefHelpDeskTasks
                              .Include(details => details.AdefHelpDeskTaskDetails)
                              .Include(categories => categories.AdefHelpDeskTaskCategories)
                              where task.TicketPassword == paramDTOTask.ticketPassword
                              where task.TaskId == paramDTOTask.taskId
                              select task).FirstOrDefault();

                    var myresult = Result.TaskId;
                }
                else
                {
                    // Using TaskId
                    Result = (from task in context.AdefHelpDeskTasks
                              .Include(details => details.AdefHelpDeskTaskDetails)
                              .Include(categories => categories.AdefHelpDeskTaskCategories)
                              where task.TaskId == paramDTOTask.taskId
                              select task).FirstOrDefault();

                    // Must be a Administrator or Requester to only use TaskId
                    if (!IsAdministrator)
                    {
                        if (!(Result.RequesterUserId == intUserID))
                        {
                            if (!UtilitySecurity.IsAdministrator(strCurrentUser, DefaultConnection))
                            {
                                return(objTask);
                            }
                        }
                    }
                }

                if (Result == null)
                {
                    return(objTask);
                }

                objTask.taskId              = Result.TaskId;
                objTask.status              = Result.Status;
                objTask.assignedRoleId      = Result.AssignedRoleId;
                objTask.createdDate         = Result.CreatedDate.ToShortDateString();
                objTask.description         = Result.Description;
                objTask.dueDate             = (Result.DueDate != null) ? Result.DueDate.Value.ToShortDateString() : "";
                objTask.estimatedCompletion = (Result.EstimatedCompletion != null) ? Result.EstimatedCompletion.Value.ToShortDateString() : "";
                objTask.estimatedHours      = Result.EstimatedHours;
                objTask.estimatedStart      = (Result.EstimatedStart != null) ? Result.EstimatedStart.Value.ToShortDateString() : "";
                objTask.portalId            = Result.PortalId;
                objTask.priority            = Result.Priority;
                objTask.requesterEmail      = Result.RequesterEmail;
                objTask.requesterName       = Result.RequesterName;
                objTask.requesterPhone      = Result.RequesterPhone;
                objTask.requesterUserId     = Result.RequesterUserId;
                objTask.ticketPassword      = Result.TicketPassword;

                // Set Requester Name
                if (Result.RequesterUserId > 0)
                {
                    var User = UtilitySecurity.UserFromUserId(Result.RequesterUserId, DefaultConnection);
                    objTask.requesterName = $"{User.firstName} {User.lastName}";
                }
                else
                {
                    objTask.requesterName = Result.RequesterName;
                }

                // Add Task Categories
                objTask.selectedTreeNodes = new List <int>();
                foreach (var itemTaskCategory in Result.AdefHelpDeskTaskCategories)
                {
                    objTask.selectedTreeNodes.Add(itemTaskCategory.CategoryId);
                }

                // Add Task Details
                objTask.colDTOTaskDetail = new List <DTOTaskDetail>();

                // Get all TaskDetails
                var TaskDetails = Result.AdefHelpDeskTaskDetails.OrderByDescending(x => x.DetailId);

                // Non-Admins can only see "Comment - Visible"
                if (!IsAdministrator)
                {
                    TaskDetails = TaskDetails.Where(x => x.DetailType == "Comment - Visible").OrderByDescending(x => x.DetailId);
                }
                else
                {
                    TaskDetails = TaskDetails.OrderByDescending(x => x.DetailId);
                }

                foreach (var itemTaskDetail in TaskDetails)
                {
                    DTOTaskDetail objDTOTaskDetail = new DTOTaskDetail();

                    objDTOTaskDetail.contentType = (itemTaskDetail.ContentType != null) ? itemTaskDetail.ContentType : Constants.TXT;
                    objDTOTaskDetail.description = itemTaskDetail.Description;
                    objDTOTaskDetail.detailId    = itemTaskDetail.DetailId;
                    objDTOTaskDetail.detailType  = itemTaskDetail.DetailType;
                    objDTOTaskDetail.insertDate  = itemTaskDetail.InsertDate.ToLongDateString() + " " + itemTaskDetail.InsertDate.ToLongTimeString();
                    objDTOTaskDetail.startTime   = (itemTaskDetail.StartTime != null) ? itemTaskDetail.StartTime.Value.ToShortDateString() + " " + itemTaskDetail.StartTime.Value.ToShortTimeString() : "";
                    objDTOTaskDetail.stopTime    = (itemTaskDetail.StopTime != null) ? itemTaskDetail.StopTime.Value.ToShortDateString() + " " + itemTaskDetail.StopTime.Value.ToShortTimeString() : "";
                    objDTOTaskDetail.userId      = itemTaskDetail.UserId;
                    objDTOTaskDetail.userName    = UtilitySecurity.UserFromUserId(itemTaskDetail.UserId, DefaultConnection).userName;

                    // Add Attachments
                    objDTOTaskDetail.colDTOAttachment = new List <DTOAttachment>();

                    var AttachmentResults = (from attachment in context.AdefHelpDeskAttachments
                                             where attachment.DetailId == objDTOTaskDetail.detailId
                                             select attachment);

                    foreach (var itemAttachmement in AttachmentResults)
                    {
                        DTOAttachment objDTOAttachment = new DTOAttachment();

                        objDTOAttachment.attachmentID = itemAttachmement.AttachmentId;
                        //objDTOAttachment.attachmentPath = itemAttachmement.AttachmentPath; -- Do not send for security reasons
                        //objDTOAttachment.fileName = itemAttachmement.FileName; -- Do not send for security reasons
                        objDTOAttachment.originalFileName = itemAttachmement.OriginalFileName;
                        objDTOAttachment.userId           = itemAttachmement.UserId.ToString();

                        objDTOTaskDetail.colDTOAttachment.Add(objDTOAttachment);

                        // If file type is .EML it is a Email
                        if (Path.GetExtension(itemAttachmement.OriginalFileName).ToUpper() == Constants.EML)
                        {
                            // Construct path
                            string FullFilePath = Path.Combine(itemAttachmement.AttachmentPath, itemAttachmement.FileName).Replace(@"\", @"/");
                            // Set Email Description and ContentType
                            SetEmailContents(itemAttachmement.FileName, itemAttachmement.AttachmentId, FullFilePath, DefaultConnection, ref objDTOTaskDetail);
                            objDTOTaskDetail.contentType = Constants.EML.Replace(".", "");
                        }
                    }

                    objTask.colDTOTaskDetail.Add(objDTOTaskDetail);
                }
            }

            #region **** Save to the Log
            if ((objTask.taskId != null) && (objTask.taskId != -1))
            {
                string strLogUserName = (IsAuthenticated) ? strCurrentUser : "******";
                Log.InsertLog(DefaultConnection, Convert.ToInt32(objTask.taskId), intUserID, $"{strLogUserName} viewed ticket.");
            }
            #endregion

            return(objTask);
        }