Example #1
0
        public int saveTask(DTOTask task)
        {
            cmd.Connection  = con;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "prc_GuardarTarea";
            cmd.Parameters.AddWithValue("@cod_tarea", task.Task_Code);
            cmd.Parameters.AddWithValue("@desc_tarea", task.Task_Description);
            cmd.Parameters.AddWithValue("@dur_aproximada", task.Task_Duration);
            cmd.Parameters.AddWithValue("@fecha", task.Task_Date);
            cmd.Parameters.AddWithValue("@nom_archivo", task.Task_FileName);

            try
            {
                if (verifyTask(task.Task_Code) == true)
                {
                    return(3);
                }
                else
                {
                    con.Open();
                    cmd.ExecuteNonQuery();
                    return(1);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error" + ex.Message);
                con.Close();
                return(0);
            }
        }
Example #2
0
        public void deleteWholeTask(DTOTask task)
        {
            using (DbContext)
            {
                // Get task, highlight, complete and timer
                var wholeTask = taskRepository.getTaskPanelByTaskId(DbContext, task);

                // Remove task, highlight, complete and timer
                if (wholeTask.Highlight.Id > 0)
                {
                    taskRepository.deleteHighlightColor(DbContext, wholeTask.Highlight);
                }
                if (wholeTask.Complete.Id > 0)
                {
                    taskRepository.deleteComplete(DbContext, wholeTask.Complete);
                }
                if (wholeTask.Timer.Id > 0)
                {
                    taskRepository.deleteTimer(DbContext, wholeTask.Timer);
                }

                if (wholeTask.Task.Id > 0)
                {
                    taskRepository.deleteTask(DbContext, wholeTask.Task);
                }

                // Save changes
                DbContext.SaveChanges();
            }
        }
Example #3
0
        /// <summary>
        /// Insert a task in db.
        /// </summary>
        /// <param name="context">Context of the database.</param>
        /// <param name="task">Task to be inserted.</param>
        /// <returns>The id of the inserted record.</returns>
        public int insertTaskAndSaveChanges(IDbContext context, DTOTask task)
        {
            // Get entity from dto
            var entity = Mapper.mapEntityTask(task);

            return(insertAndSaveChanges <Task>(context, entity));
        }
        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));
        }
Example #5
0
        /// <summary>
        /// Get all the task by requirement id as iqueryable.
        /// </summary>
        /// <param name="context">context of the database.</param>
        /// <param name="task">Task that contains the requirement id fk.</param>
        /// <returns>An iqueryable collection.</returns>
        private IQueryable <Task> getAllByReqId(IDbContext context, DTOTask task)
        {
            throwExceptionIfForeignKeyInvalid(task.RequirementId);

            var query = getAll <Task>(context).Where(x => x.RequirementId == task.RequirementId).AsQueryable();

            return(query);
        }
Example #6
0
        // Task ================================================
        /// <summary>
        /// Get the number of completed tas for a requirement.
        /// </summary>
        /// <param name="context">context of the database.</param>
        /// <param name="task">task that contains the requirement id to filter by.</param>
        /// <returns>An integer containing the number of completed tasks.</returns>
        public int getCompletedTasksNumber(IDbContext context, DTOTask task)
        {
            var query = (from taskRecord in getAllByReqId(context, task)
                         join completeRecord in getAll <Complete>(context) on taskRecord.Id equals completeRecord.TaskId
                         where completeRecord.IsComplete
                         select task.Id).Count();

            return(query);
        }
Example #7
0
        /// <summary>
        /// Check if tasks exist by requirement id.
        /// </summary>
        /// <param name="context">Context of the database.</param>
        /// <param name="task">Task tha contains the project id to check the existance of the task.</param>
        /// <returns>True if tasks exists for that project id. Otherwise false.</returns>
        public bool tasksExistByRequirementId(IDbContext context, DTOTask task)
        {
            // Throw exception if requirement id is not valid
            throwExceptionIfForeignKeyInvalid(task.RequirementId);

            var query = getAll <Task>(context).Where(x => x.RequirementId == task.RequirementId).Any();

            return(query);
        }
Example #8
0
        // Highlight
        public DTOHighlightColor getRandomHighlight(DTOTask task)
        {
            var randonColor             = r.Next(0, 4);
            DTOHighlightColor highlight = new DTOHighlightColor
            {
                Color  = randonColor,
                TaskId = task.Id
            };

            return(highlight);
        }
Example #9
0
        // Timer
        public DTOTimer getRandomTimer(DTOTask task)
        {
            var      randonSeconds = getRLong();
            DTOTimer timer         = new DTOTimer
            {
                TimeInSeconds = randonSeconds,
                TaskId        = task.Id
            };

            return(timer);
        }
Example #10
0
        // Complete
        public DTOComplete getRandomCompleteWithIsCompleteTrue(DTOTask task)
        {
            var         randonFinalizationDate = getRandomDate();
            DTOComplete complete = new DTOComplete
            {
                IsComplete       = true,
                FinalizationDate = randonFinalizationDate,
                TaskId           = task.Id
            };

            return(complete);
        }
Example #11
0
        // Task
        public DTOTask getRandomTask(DTORequirements requirement)
        {
            var randonDescription  = "descrp-" + getRString();
            var randonCreationDate = getRandomDate();
            var taskToInsert       = new DTOTask
            {
                RequirementId = requirement.Id,
                Description   = randonDescription,
                CreationDate  = randonCreationDate
            };

            return(taskToInsert);
        }
Example #12
0
        public DataTable listTasks(DTOTask task)
        {
            cmd.Connection  = con;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "prc_ListarTareas";
            DataTable      data = new DataTable();
            SqlDataAdapter sda  = new SqlDataAdapter(cmd);

            con.Open();
            sda.Fill(data);
            con.Close();
            return(data);
        }
Example #13
0
        /// <summary>
        /// Update a task in db.
        /// </summary>
        /// <param name="context">Context of the database.</param>
        /// <param name="task">Task to be updated.</param>
        public void updateTask(IDbContext context, DTOTask task)
        {
            // Get old entity
            var oldEntity = getById <Task>(context, Mapper.mapEntityTask(task)).FirstOrDefault();

            // Get new entity and set the dates to the ones in old entity
            var newEntity = Mapper.mapEntityTask(task);

            newEntity.RequirementId = oldEntity.RequirementId;
            newEntity.CreationDate  = oldEntity.CreationDate;

            // Update
            update <Task>(context, newEntity, oldEntity);
        }
Example #14
0
        /// <summary>
        /// Update a task.
        /// </summary>
        /// <param name="task">Task to be updated.</param>
        public void updateTask(DTOTask task)
        {
            using (DbContext)
            {
                // Validate task to update
                if (!taskToUpdateIsOk(task))
                {
                    return;
                }

                // Update task and save changes
                taskRepository.updateTask(DbContext, task);
                DbContext.SaveChanges();
            }
        }
        public static DTOTask MapAPITaskToTask(DTOAPITask objTask, DTOAPITaskDetail objTaskDetail)
        {
            DTOTask paramTask = new DTOTask();

            paramTask.assignedRoleId      = objTask.assignedRoleId ?? -1;
            paramTask.assignedRoleName    = objTask.assignedRoleName ?? "";
            paramTask.createdDate         = objTask.createdDate ?? "";
            paramTask.description         = objTask.description ?? "";
            paramTask.dueDate             = objTask.dueDate ?? "";
            paramTask.estimatedCompletion = objTask.estimatedCompletion ?? "";
            paramTask.estimatedHours      = objTask.estimatedHours;
            paramTask.estimatedStart      = objTask.estimatedStart ?? "";
            paramTask.portalId            = objTask.portalId ?? -1;
            paramTask.priority            = objTask.priority ?? "";
            paramTask.requesterEmail      = objTask.requesterEmail ?? "";
            paramTask.requesterName       = objTask.requesterName ?? "";
            paramTask.requesterPhone      = objTask.requesterPhone ?? "";
            paramTask.requesterUserId     = objTask.requesterUserId ?? -1;
            paramTask.selectedTreeNodes   = objTask.selectedTreeNodes;
            paramTask.sendEmails          = objTask.sendEmails ?? true;
            paramTask.status         = objTask.status ?? "";
            paramTask.taskId         = objTask.taskId ?? -1;
            paramTask.ticketPassword = objTask.ticketPassword ?? "";

            if (objTaskDetail != null)
            {
                DTOTaskDetail paramDTOTaskDetail = new DTOTaskDetail();
                paramDTOTaskDetail.colDTOAttachment = new List <DTOAttachment>();
                paramDTOTaskDetail.contentType      = objTaskDetail.contentType ?? "";
                paramDTOTaskDetail.description      = objTaskDetail.taskDetailDescription ?? "";
                paramDTOTaskDetail.detailId         = objTaskDetail.detailId ?? -1;
                paramDTOTaskDetail.detailType       = objTaskDetail.detailType ?? "";
                paramDTOTaskDetail.emailDescription = objTaskDetail.emailDescription ?? "";
                paramDTOTaskDetail.insertDate       = objTaskDetail.insertDate ?? "";
                paramDTOTaskDetail.sendEmails       = objTaskDetail.sendTaskDetailEmails ?? false;
                paramDTOTaskDetail.startTime        = objTaskDetail.startTime ?? "";
                paramDTOTaskDetail.stopTime         = objTaskDetail.stopTime ?? "";
                paramDTOTaskDetail.userId           = objTaskDetail.userId ?? -1;
                paramDTOTaskDetail.userName         = objTaskDetail.userName ?? "";

                paramTask.colDTOTaskDetail = new List <DTOTaskDetail>();
                paramTask.colDTOTaskDetail.Add(paramDTOTaskDetail);
            }

            return(paramTask);
        }
Example #16
0
        /// <summary>
        /// Insert a task in db.
        /// </summary>
        /// <param name="task">Task to be inserted.</param>
        /// <returns>The id of the inserted record.</returns>
        public int insertTask(DTOTask task)
        {
            using (DbContext)
            {
                // Validate insert task
                if (!taskToInsertIsOk(task))
                {
                    return(-1);
                }

                // Set the creation date
                task.CreationDate = DateTime.Now;

                // Insert task and return id
                return(taskRepository.insertTaskAndSaveChanges(DbContext, task));
            }
        }
Example #17
0
        public DTOTaskDetailResponse CreateUpdateTaskDetail(DTOAPITask objTask, DTOAPITaskDetail objTaskDetail, IFormFile objFile)
        {
            DTOTaskDetailResponse objDTOStatus = new DTOTaskDetailResponse();

            objDTOStatus.isSuccess  = true;
            objDTOStatus.message    = "";
            objDTOStatus.taskDetail = new DTOTaskDetail();

            // Get Settings
            string CurrentHostLocation = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}";
            string ContentRootPath     = _hostEnvironment.ContentRootPath;
            string strCurrentUser      = this.User.Claims.FirstOrDefault().Value;
            string strConnectionString = GetConnectionString();
            int    intUserId           = -1;
            bool   IsSuperUser         = true;
            bool   IsAdministrator     = true;
            bool   IsAuthenticated     = true;

            try
            {
                DTOTask paramTask = ExternalAPIUtility.MapAPITaskToTask(objTask, objTaskDetail);

                objDTOStatus = UploadTaskController.InsertUpdateTaskDetailMethod(
                    strConnectionString,
                    CurrentHostLocation,
                    ContentRootPath,
                    paramTask,
                    objFile,
                    strCurrentUser,
                    intUserId,
                    IsSuperUser,
                    IsAdministrator,
                    strCurrentUser,
                    IsAuthenticated);
            }
            catch (Exception ex)
            {
                objDTOStatus.isSuccess = false;
                objDTOStatus.message   = ex.GetBaseException().Message;
            }

            return(objDTOStatus);
        }
Example #18
0
        public int deleteTask(DTOTask task)
        {
            cmd.Connection  = con;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "prc_EliminarTarea";
            cmd.Parameters.AddWithValue("@cod_tarea", task.Task_Code);

            try
            {
                con.Open();
                cmd.ExecuteNonQuery();
                return(1);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error" + ex.Message);
                con.Close();
                return(0);
            }
        }
Example #19
0
        // Task ==================================================
        /// <summary>
        /// Get all tasks with project and requirement names and ids.
        /// </summary>
        /// <param name="requirement">Requirement to filter by.</param>
        /// <returns>A DTO Task view with the collection of tasks, ids and names for both requirement and project.</returns>
        public DTOTaskView getTaskView(DTOTask task)
        {
            using (DbContext)
            {
                // Get the parts of the dto task view
                var idsAndNames            = taskRepository.getIdsAndNamesForProjectAndRequirement(DbContext, task);
                var listDTOTaskPanel       = taskRepository.getListTaskPanelByRequirementId(DbContext, task);
                var numberOfCompletedTasks = taskRepository.getCompletedTasksNumber(DbContext, task);
                var numberOfTotalTasks     = taskRepository.getAllTasksNumber(DbContext, task);

                // Fill the dto task view
                return(new DTOTaskView
                {
                    IdsNames = idsAndNames,
                    ListTaskPanels = listDTOTaskPanel,
                    CompletedTasks = numberOfCompletedTasks,
                    TotalTasks = numberOfTotalTasks
                });
            }
        }
Example #20
0
        public DTOTaskStatus GetTask(int TaskId)
        {
            DTOTaskStatus objDTOStatus = new DTOTaskStatus();

            objDTOStatus.Success       = true;
            objDTOStatus.StatusMessage = "";

            // Get Settings
            string CurrentHostLocation = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}";
            string ContentRootPath     = _hostEnvironment.ContentRootPath;
            string strCurrentUser      = this.User.Claims.FirstOrDefault().Value;
            string strConnectionString = GetConnectionString();
            int    intUserId           = -1;
            bool   IsAdministrator     = true;
            bool   IsAuthenticated     = true;

            try
            {
                DTOTask obJDTOTask = new DTOTask();
                obJDTOTask.taskId         = TaskId;
                obJDTOTask.ticketPassword = "";

                objDTOStatus.Task = TaskController.GetTask(
                    obJDTOTask,
                    intUserId,
                    IsAdministrator,
                    strConnectionString,
                    strCurrentUser,
                    IsAuthenticated);
            }
            catch (Exception ex)
            {
                objDTOStatus.Success       = false;
                objDTOStatus.StatusMessage = ex.GetBaseException().Message;
            }

            return(objDTOStatus);
        }
Example #21
0
        public DTOStatus UpdateTask(DTOAPITask objTask)
        {
            DTOStatus objDTOStatus = new DTOStatus();

            objDTOStatus.Success       = true;
            objDTOStatus.StatusMessage = "";

            // Get Settings
            string CurrentHostLocation = $"{this.Request.Scheme}://{this.Request.Host}{this.Request.PathBase}";
            string ContentRootPath     = _hostEnvironment.ContentRootPath;
            string strCurrentUser      = this.User.Claims.FirstOrDefault().Value;
            string strConnectionString = GetConnectionString();
            int    intUserId           = -1;
            bool   IsAuthenticated     = true;

            try
            {
                DTOTask paramTask = ExternalAPIUtility.MapAPITaskToTask(objTask, null);

                objDTOStatus = UploadTaskController.UpdateTaskMethod(
                    strConnectionString,
                    CurrentHostLocation,
                    ContentRootPath,
                    paramTask,
                    strCurrentUser,
                    intUserId,
                    IsAuthenticated);
            }
            catch (Exception ex)
            {
                objDTOStatus.Success       = false;
                objDTOStatus.StatusMessage = ex.GetBaseException().Message;
            }

            return(objDTOStatus);
        }
Example #22
0
        /// <summary>
        /// Get all tasks by a requirement id. It also gets the id and name of the project and requirement.
        /// </summary>
        /// <param name="context">Context of the database.</param>
        /// <param name="requirement">Requeriment to filter by.</param>
        /// <returns>A DTO Task view.</returns>
        public DTOIdsNames getIdsAndNamesForProjectAndRequirement(IDbContext context, DTOTask task)
        {
            // Throw exception if keys are invalid
            throwExceptionIfForeignKeyInvalid(task.RequirementId);

            // Get ids and names of project and requirement
            var dtoIdsNames = (from projectRecord in getAll <Project>(context)
                               join requirementRecord in getAll <Requirement>(context)
                               on projectRecord.Id equals requirementRecord.ProjectId
                               where requirementRecord.Id == task.RequirementId
                               select new DTOIdsNames
            {
                ProjectId = projectRecord.Id,
                ProjectName = projectRecord.Name,
                RequirementId = requirementRecord.Id,
                RequirementName = requirementRecord.Name
            }).FirstOrDefault();


            return(dtoIdsNames);
        }
Example #23
0
        /// <summary>
        /// Get all the tasks with the complete status, highlight, and timer.
        /// </summary>
        /// <param name="context">Context of the database.</param>
        /// <param name="requirement">Requirement to filter by.</param>
        /// <returns>A Collection of DTOTaskPanel.</returns>
        public List <DTOTaskPanel> getListTaskPanelByRequirementId(IDbContext context, DTOTask task)
        {
            // Throw exception if keys are invalid
            throwExceptionIfForeignKeyInvalid(task.RequirementId);

            // Get defaults
            var defaults = new DTOTaskPanel();

            var query = (from taskRecord in getAll <Task>(context)

                         // left join highlight
                         join highlightRecord in getAll <Highlight>(context)
                         on taskRecord.Id equals highlightRecord.TaskId into joinHighlight
                         from highLight in joinHighlight.DefaultIfEmpty()

                         // left join complete
                         join completeRecord in getAll <Complete>(context)
                         on taskRecord.Id equals completeRecord.TaskId into joinComplete
                         from complete in joinComplete.DefaultIfEmpty()

                         // left join timer
                         join timerRecord in getAll <Timer>(context)
                         on taskRecord.Id equals timerRecord.TaskId into joinTimer
                         from timer in joinTimer.DefaultIfEmpty()

                         where taskRecord.RequirementId == task.RequirementId
                         select new
            {
                Task = new { TaskId = taskRecord.Id, Description = taskRecord.Description, CreationDate = taskRecord.CreationDate },
                Highlight = new
                {
                    Color = (highLight == null) ? defaults.Highlight.Color : highLight.Color,
                    Id = (highLight == null) ? defaults.Highlight.Id : highLight.Id
                },
                Complete = new
                {
                    IsComplete = (complete == null) ? defaults.Complete.IsComplete : complete.IsComplete,
                    Id = (complete == null) ? defaults.Complete.Id : complete.Id
                },
                Timer = new
                {
                    TimeInSeconds = (timer == null) ? defaults.Timer.TimeInSeconds : timer.TimeInSeconds,
                    Id = (timer == null) ? defaults.Timer.Id : timer.Id,
                }

                // Map to the DTOTaskPanel
            }).AsEnumerable().Select(x => new DTOTaskPanel {
                Timer = new DTOTimer {
                    TimeInSeconds = x.Timer.TimeInSeconds, Id = x.Timer.Id
                },
                Complete = new DTOComplete {
                    IsComplete = x.Complete.IsComplete, Id = x.Complete.Id
                },
                Highlight = new DTOHighlightColor {
                    Color = x.Highlight.Color, Id = x.Highlight.Id
                },
                Task = new DTOTask {
                    Description = x.Task.Description, Id = x.Task.TaskId, CreationDate = x.Task.CreationDate
                }
            }).OrderByDescending(x => x.Task.CreationDate).ToList();

            return(query);
        }
        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);
        }
Example #25
0
        // Validations ===========================================

        /// <summary>
        /// Validate if the task to insert is ok.
        /// </summary>
        /// <param name="tasks">Task to be inserted.</param>
        /// <returns>True if task is ok. Otherwise false.</returns>
        private bool taskToInsertIsOk(DTOTask tasks)
        {
            return(true);
        }
Example #26
0
        /// <summary>
        /// Get the number of total task for a requirement.
        /// </summary>
        /// <param name="context">context of the database.</param>
        /// <param name="task">task that contains the requirement id to filter by.</param>
        /// <returns>An integer containing the number of tasks for a requirement.</returns>
        public int getAllTasksNumber(IDbContext context, DTOTask task)
        {
            var query = getAllByReqId(context, task).Count();

            return(query);
        }
Example #27
0
 /// <summary>
 /// Remove a task from db.
 /// </summary>
 /// <param name="context">Context of the database.</param>
 /// <param name="task">Task to remove.</param>
 public void deleteTask(IDbContext context, DTOTask task)
 {
     delete <Task>(context, Mapper.mapEntityTask(task));
 }
Example #28
0
        /// <summary>
        /// Get a DTO task by id.
        /// </summary>
        /// <param name="context">Context of the database.</param>
        /// <param name="task">Task to filter by.</param>
        /// <returns>A DTO Task matching the criteria.</returns>
        public DTOTask getTaskById(IDbContext context, DTOTask task)
        {
            var query = getById <Task>(context, Mapper.mapEntityTask(task)).FirstOrDefault();

            return(Mapper.mapDTOTask(query));
        }
Example #29
0
 /// <summary>
 /// Validate if update is ok.
 /// </summary>
 /// <param name="task">Task to validate</param>
 /// <returns>True if validation successful. Otherwiser false.</returns>
 private bool taskToUpdateIsOk(DTOTask task)
 {
     return(true);
 }
        // Private Methods

        #region public static TaskSearchResult SearchTasks(SearchTaskParameters searchData, int intUserId, int iSAdministrator, string DefaultConnection)
        public static TaskSearchResult SearchTasks(SearchTaskParameters searchData, int intUserId, int iSAdministrator, string DefaultConnection)
        {
            TaskSearchResult objTaskSearchResult = new TaskSearchResult();

            objTaskSearchResult.taskList = new List <DTOTask>();
            List <AdefHelpDeskRoles> AllRoles = new List <AdefHelpDeskRoles>();
            var resultTable = new DataTable();

            //If searchData.rowsPerPage = 0 set it to 1
            if (searchData.rowsPerPage == 0)
            {
                searchData.rowsPerPage = 1;
            }

            //If searchData.pageNumber = 0 set it to 1
            if (searchData.pageNumber == 0)
            {
                searchData.pageNumber = 1;
            }

            var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>();

            optionsBuilder.UseSqlServer(DefaultConnection);

            using (var context = new ADefHelpDeskContext(optionsBuilder.Options))
            {
                // Get all possible roles to reduce database calls later
                AllRoles = (from role in context.AdefHelpDeskRoles
                            select role).ToList();
            }

            using (var conn = new SqlConnection(DefaultConnection))
            {
                using (var cmd = new SqlCommand())
                {
                    cmd.CommandText = "[spSearchTasks]";
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Connection  = conn;

                    cmd.Parameters.AddWithValue("@paramIsAdmin", iSAdministrator);
                    cmd.Parameters.AddWithValue("@paramUserId", intUserId);
                    cmd.Parameters.AddWithValue("@paramSearchText", searchData.searchText ?? "");
                    cmd.Parameters.AddWithValue("@paramStatus", searchData.status ?? "");
                    cmd.Parameters.AddWithValue("@paramPriority", searchData.priority ?? "");
                    cmd.Parameters.AddWithValue("@paramCreatedDate", searchData.createdDate ?? "");
                    cmd.Parameters.AddWithValue("@paramDueDate", searchData.dueDate ?? "");
                    cmd.Parameters.AddWithValue("@paramAssignedRoleId", searchData.assignedRoleId ?? "");
                    cmd.Parameters.AddWithValue("@paramSelectedTreeNodes", String.Join(",", searchData.selectedTreeNodes));
                    cmd.Parameters.AddWithValue("@paramSortOrder", searchData.sortOrder ?? "");
                    cmd.Parameters.AddWithValue("@paramSortField", searchData.sortField ?? "");
                    cmd.Parameters.AddWithValue("@paramRowsPerPage", searchData.rowsPerPage);
                    cmd.Parameters.AddWithValue("@paramPageNumber", searchData.pageNumber);

                    SqlParameter parTotalCount = new SqlParameter("@paramTotalCount", SqlDbType.Int);
                    parTotalCount.Direction = ParameterDirection.Output;
                    cmd.Parameters.Add(parTotalCount);

                    using (var adapter = new SqlDataAdapter(cmd))
                    {
                        adapter.Fill(resultTable);
                    }

                    objTaskSearchResult.totalRows = Convert.ToInt32(parTotalCount.Value);
                }
            }

            List <DTOTask> colDTOTasks = new List <DTOTask>();

            foreach (System.Data.DataRow item in resultTable.Rows)
            {
                DTOTask objDTOTask = new DTOTask();

                objDTOTask.taskId              = Convert.ToInt32(item.ItemArray[0]);
                objDTOTask.portalId            = Convert.ToInt32(item.ItemArray[1]);
                objDTOTask.description         = Convert.ToString(item.ItemArray[2]);
                objDTOTask.status              = Convert.ToString(item.ItemArray[3]);
                objDTOTask.priority            = Convert.ToString(item.ItemArray[4]);
                objDTOTask.createdDate         = Convert.ToDateTime(item.ItemArray[5]).ToShortDateString();
                objDTOTask.estimatedStart      = (item.ItemArray[6].ToString() != "") ? Convert.ToDateTime(item.ItemArray[6]).ToShortDateString() : "";
                objDTOTask.estimatedCompletion = (item.ItemArray[7].ToString() != "") ? Convert.ToDateTime(item.ItemArray[7]).ToShortDateString() : "";
                objDTOTask.dueDate             = (item.ItemArray[8].ToString() != "") ? Convert.ToDateTime(item.ItemArray[8]).ToShortDateString() : "";
                objDTOTask.assignedRoleId      = Convert.ToInt32(item.ItemArray[9]);
                objDTOTask.ticketPassword      = Convert.ToString(item.ItemArray[10]);
                objDTOTask.requesterUserId     = Convert.ToInt32(item.ItemArray[11]);
                objDTOTask.requesterName       = Convert.ToString(item.ItemArray[12]);
                objDTOTask.requesterEmail      = Convert.ToString(item.ItemArray[13]);
                objDTOTask.requesterPhone      = Convert.ToString(item.ItemArray[14]);
                if (item.ItemArray[15].ToString() != "")
                {
                    objDTOTask.estimatedHours = Convert.ToInt32(item.ItemArray[15]);
                }

                // Set Requester Name
                if (objDTOTask.requesterUserId > 0)
                {
                    var User = UtilitySecurity.UserFromUserId(objDTOTask.requesterUserId.Value, DefaultConnection);
                    objDTOTask.requesterName = $"{User.firstName} {User.lastName}";
                }
                else
                {
                    objDTOTask.requesterName = objDTOTask.requesterName;
                }

                // Set AssignedRoleName
                var objUserRole = AllRoles.Where(x => x.Id == objDTOTask.assignedRoleId).FirstOrDefault();
                if (objUserRole != null)
                {
                    objDTOTask.assignedRoleName = objUserRole.RoleName;
                }
                else
                {
                    objDTOTask.assignedRoleName = "[Unassigned]";
                }

                colDTOTasks.Add(objDTOTask);
            }

            objTaskSearchResult.taskList     = colDTOTasks;
            objTaskSearchResult.errorMessage = string.Empty;

            return(objTaskSearchResult);
        }