public static List <ValidationMessage> SaveProject( ValidatableParameter <string> projectId, ValidatableParameter <string> details, ValidatableParameter <bool> active ) { List <ValidationMessage> errors = new List <ValidationMessage>(); Guid projId = Guid.Empty; try { projId = new Guid(projectId.Value); } catch (FormatException) { errors.Add(new ValidationMessage { MessageText = "Project Id must be in the format dddddddd-dddd-dddd-dddd-dddddddddddd", Source = projectId.Source }); } if (string.IsNullOrEmpty(details.Value) || details.Value.Trim().Length == 0) { errors.Add(new ValidationMessage { MessageText = "Project Name must be supplied", Source = details.Source }); } else { //check for existing name with different id (name already in use) Project existItem = AllProjects.GetForName(details.Value); if (existItem != null && existItem.Id != projId) { errors.Add(new ValidationMessage { MessageText = string.Format("Project Name is already in use by project with Id {0}", existItem.Id.ToString()), Source = details.Source }); } } //perform update if no errors if (errors.Count == 0) { AllProjects items = new AllProjects(); Project newItem = new Project { Id = projId, Description = details.Value, Active = active.Value }; if (projId == Guid.Empty) { newItem.Id = Guid.NewGuid(); //set id items.Add(newItem); } else { Project existItem = items.Where(i => i.Id == projId).Single(); items.Remove(existItem); items.Add(newItem); } items.Save(); } return(errors); }
public Project GetProject(string name) { return(AllProjects.SingleOrDefault(x => name.Equals(x.Name, StringComparison.Ordinal))); }
public Project GetProject(string nameOrFullPath) { return AllProjects.SingleOrDefault(x => nameOrFullPath.Equals(x.Name, StringComparison.Ordinal)) ?? AllProjects.SingleOrDefault(x => x.Path.ToString().EqualsOrdinalIgnoreCase(nameOrFullPath)); }
public static Project GetLastConfiguration() { //Project item = null; return(AllProjects.Find(projects => projects.WasLastUsed)); }
/// <summary> /// Add a Project to the list in the databse /// </summary> /// <param name="item"></param> /// <returns></returns> public static void Add(Project item) { AllProjects.Add(item); }
protected override void OnDispose() { AllClients.Clear(); AllProjects.Clear(); AllStatuses.Clear(); }
void AddProjectCommandExecute() { _projectRepository.Add(testProject); AllProjects.Insert(AllClients.Count - 1, testProject); }
bool CanDeleteProject() { return(AllProjects.Count(p => p.IsSelected == true) == 1); }
void RemoveProjectCommandExecute() { _projectRepository.Remove(testProject); AllProjects.Remove(testProject); }
public IDotNetProjectInstance FindProjectById(string projectId) { return(AllProjects.SingleOrDefault(p => p.Id == projectId)); }
private async Task GetProjectsAsync() { List <TimesheetEntry> timesheetEntries; ShownProjectsCollection.Clear(); AllProjects.Clear(); //Get all entries with a project ID using (var ctx = new DatabaseDir.Database()) //Get entries timesheetEntries = ctx.TimesheetEntries.Include(ts => ts.vismaEntries.Select(ve => ve.LinkedRate)).ToList(); //Convert to projects foreach (TimesheetEntry timesheetEntry in timesheetEntries) { //Filter empty project IDs if (string.IsNullOrWhiteSpace(timesheetEntry.ProjectID)) { continue; } //Filter timesheets with no "Arbejde" types if (timesheetEntry.vismaEntries.Where(x => x.LinkedRate.Type == "Arbejde").ToList().Count() == 0) { continue; } //Filter if a period is specified if (SelectedWeek > 0 && SelectedYear > 0) { DateTime from = DateHelper.WeekNumToDateTime(SelectedWeek, SelectedYear, 0); DateTime to = DateHelper.WeekNumToDateTime(SelectedWeek, SelectedYear, 6); if (timesheetEntry.Date < from || timesheetEntry.Date > to) { continue; //Then skip } } //Initalize double normalHours = 0; double overtimeHours = 0; //Sum up hours from the entry foreach (VismaEntry vismaEntry in timesheetEntry.vismaEntries) { //Filter non "Arbejde" (work) types if (vismaEntry.LinkedRate.Type != "Arbejde") { continue; } //Sum overtime hours if (vismaEntry.LinkedRate.Name == "Normal") { if (vismaEntry.Value > 0) { normalHours += vismaEntry.Value; } } else { overtimeHours += vismaEntry.Value; } } //Add time to project if (!AllProjects.Where(p => p.ProjectID == timesheetEntry.ProjectID).ToList().Any()) { //If project is not already listed AllProjects.Add(new Project(timesheetEntry.ProjectID, normalHours, overtimeHours)); } else { //Else add hours to existing Project SelectedProject = AllProjects.Where(p => p.ProjectID == timesheetEntry.ProjectID).FirstOrDefault(); SelectedProject.TotalNormalHours += normalHours; SelectedProject.TotalOverTimeHours += overtimeHours; } } AllProjects.Sort((x, y) => string.Compare(x.ProjectID, y.ProjectID)); FiltherProjects(); }
public IDotNetProjectInstance GetProjectInstanceForProjectFile(string absolutePath) { return(AllProjects.SingleOrDefault(p => p.ProjectFileAbsolutePath == absolutePath)); }
public async Task <IEnumerable <Project> > GetAllProjectsWithClaimCount() => await AllProjects.Include(p => p.Claims).ToListAsync();
public async Task <IEnumerable <Project> > GetArchivedProjectsWithClaimCount() => await AllProjects.Include(p => p.Claims).Where(p => !p.Active).ToListAsync();
public IDotNetProjectInstance GetProjectInstanceForProjectFile(string absolutePath) { var target = absolutePath.ToLower(); return(AllProjects.SingleOrDefault(p => p.ProjectFileAbsolutePath.ToLower() == target)); }
private void AllProjects_OnSelectionChanged(object sender, SelectionChangedEventArgs e) { AllProjects.ScrollIntoView(ViewModel.SolutionViewModel.ProjectViewModel); }