Пример #1
0
        private void UpdateLeaders(OmadaTeam team)
        {
            List <OmadaUser> updatedLeaders = TeamMembers.Where(m => m.IsLeader == true).Select(m => m.User).ToList();

            teamData.SetNoLeaders(team);
            foreach (var member in updatedLeaders)
            {
                teamData.UpdateLeaderStatus(member.Id, team);
            }
        }
Пример #2
0
        public IEnumerable <string> GetMembersToIncludeInReport()
        {
            if (this.membersToIncludeInReport == null)
            {
                this.membersToIncludeInReport = TeamMembers?.Where(item => item.IncludeInReports)?.Select(item => item.Name)?.ToList();
                if (this.membersToIncludeInReport == null)
                {
                    this.membersToIncludeInReport = new List <string>();
                }
            }

            return(this.membersToIncludeInReport);
        }
        private void SetCheckedText(object param)
        {
            try
            {
                WatchingMembers = new ObservableCollection <SiteManagerModel>();

                List <string> checkedMembers = new List <string>();
                foreach (var tm in TeamMembers.Where(t => t.IsChecked))
                {
                    checkedMembers.Add(tm.Name);
                    WatchingMembers.Add(tm);
                }
                TeamMembersText = string.Join(", ", checkedMembers);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error", ex.Message, MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        private async Task CreateTask()
        {
            try
            {
                List <KeyValuePair <string, string> > values = new List <KeyValuePair <string, string> >
                {
                    new KeyValuePair <string, string>("Title", Title),
                    new KeyValuePair <string, string>("Task Type", TypeText),
                    new KeyValuePair <string, string>("Task Status", StatusText),
                    new KeyValuePair <string, string>("Task Stamp", StampText),
                    new KeyValuePair <string, string>("Sheet", SelectedSheet?.Title),
                };
                if (FieldValidation.ValidateFields(values))
                {
                    if (WatchingMembers.Count() <= 0)
                    {
                        MessageBox.Show("Please add atleast 1 Team Member to the Task", "Add Team Members", MessageBoxButton.OK, MessageBoxImage.Warning);
                    }
                    else if (WatchingMembers.Where(w => w.IsWatcher).Count() <= 0)
                    {
                        MessageBox.Show("Please select watching members from the Selected Team Members", "Select Watching Members", MessageBoxButton.OK, MessageBoxImage.Warning);
                    }
                    else
                    {
                        CanSaveTask = false;

                        List <TaskMembersModel>  taskMembers  = new List <TaskMembersModel>();
                        List <TaskWatchersModel> taskWatchers = new List <TaskWatchersModel>();

                        TeamMembers.Where(s => s.IsChecked).ToList().ForEach(s => taskMembers.Add(
                                                                                 new TaskMembersModel
                        {
                            TaskID        = ID,
                            SiteManagerID = s.ID,
                        }));

                        WatchingMembers.Where(s => s.IsWatcher).ToList().ForEach(s => taskWatchers.Add(
                                                                                     new TaskWatchersModel
                        {
                            TaskID        = ID,
                            SiteManagerID = s.ID,
                        }));


                        TaskModel taskData = new TaskModel()
                        {
                            ProjectID    = ParentLayout.SelectedProject.ID,
                            Title        = Title,
                            Description  = Description,
                            TaskStatusID = SelectedStatus?.ID,
                            Status       = SelectedStatus == null ? new StatusModel {
                                Title = StatusText, CreatedBy = ParentLayout.LoggedInUser.Name
                            } : null,
                            TaskTypeID = SelectedType?.ID,
                            Type       = SelectedType == null ? new TypeModel {
                                Title = TypeText, CreatedBy = ParentLayout.LoggedInUser.Name
                            } : null,
                            StartDate = StartDate,
                            DueDate   = DueDate,
                            Members   = taskMembers,
                            Watchers  = taskWatchers,
                            StampID   = SelectedStamp?.ID,
                            Stamp     = SelectedStamp == null ? new StampModel {
                                Title = StampText, CreatedBy = ParentLayout.LoggedInUser.Name
                            } : null,
                            SheetID = SelectedSheet?.ID,
                        };

                        HttpResponseMessage result = null;
                        if (isUpdate)
                        {
                            taskData.ID         = ID;
                            taskData.CreatedBy  = SelectedTask.CreatedBy;
                            taskData.CreatedOn  = SelectedTask.CreatedOn;
                            taskData.ModifiedBy = ParentLayout.LoggedInUser.Name;
                            taskData.ModifiedOn = DateTime.Now;
                            result = await apiHelper.PutTask(ParentLayout.LoggedInUser.Token, taskData).ConfigureAwait(false);
                        }
                        else
                        {
                            taskData.CreatedBy = ParentLayout.LoggedInUser.Name;
                            taskData.CreatedOn = DateTime.Now;
                            result             = await apiHelper.PostTask(ParentLayout.LoggedInUser.Token, taskData).ConfigureAwait(false);
                        }
                        if (result.IsSuccessStatusCode)
                        {
                            MessageBox.Show($"Task Saved Successfully", "Success", MessageBoxButton.OK, MessageBoxImage.Information);
                            await GetTasks();

                            #region Log Data

                            ActivityLogModel logData = new ActivityLogModel()
                            {
                                Type        = "Task",
                                Description = $"Task '{taskData.Title}' created by '{ParentLayout.LoggedInUser.Name}'",
                                ProjectID   = ParentLayout.SelectedProject.ID,
                                CreatedBy   = ParentLayout.LoggedInUser.Name,
                                CreatedOn   = DateTime.Now
                            };
                            if (isUpdate)
                            {
                                logData.Description = $"Task '{taskData.Title}' updated by '{ParentLayout.LoggedInUser.Name}'";
                            }
                            await logAPIHelper.PostActivityLog(ParentLayout.LoggedInUser.Token, logData);

                            #endregion

                            IsUpdate = false;
                            ClearFields();
                            await GetStamps();
                            await GetTypes();
                            await GetStatuses();
                            await GetTeamMembers();
                        }
                        else
                        {
                            MessageBox.Show("Error in saving Task", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        }
                        CanSaveTask = true;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                CanSaveTask = true;
            }
        }