public virtual void SetDataType(Type type, UiBase parent) { CloseCurrentService(); CurrentType = type; this.associatedParent = parent; if (type == typeof(UiClient)) { UiClient.InitService(); SelectService(UiClient.Service, typeof(UiClient), parent); return; } if (type == typeof(UiEmployee)) { UiEmployee.InitService(); SelectService(UiEmployee.Service, typeof(UiEmployee), parent); return; } if (type == typeof(UiProjectItemsCategory)) { // only as DetailController UiProjectItemsCategory.InitService(); SelectService(UiProjectItemsCategory.Service, typeof(UiProjectItemsCategory), parent); return; } if (type == typeof(UiProject)) { UiProject.InitService(); SelectService(UiProject.Service, typeof(UiProject), parent, new[] { "Budgets" }); return; } if (type == typeof(UiMaterial)) { UiMaterial.InitService(); SelectService(UiMaterial.Service, typeof(UiMaterial), parent); return; } if (type == typeof(UiProjectCategory)) { UiProjectCategory.InitService(); SelectService(UiProjectCategory.Service, typeof(UiProjectCategory), parent); return; } // TODO : throw an exception }
private List <ProjectCategorySplit> DoGetData(/*TODO : filter*/) { var result = new List <ProjectCategorySplit>(); var projects = UiProject.Service.GetList(/*TODO : filter*/); foreach (UiProject prj in projects) { var item = new ProjectCategorySplit { Name = prj.Name, Budget = prj.Price, Budgets = new List <CategoryBudget>(), }; if (UiProjectCategory.Service == null) { UiProjectCategory.InitService(); } foreach (UiProjectCategory cat in UiProjectCategory.Service.GetList()) { var budget = new CategoryBudget(); budget.CategoryName = cat.Name; foreach (var catItem in (UiProjectItemDetail.Service as UiProjectItemDetail.TheService).GetList(prj.Id, cat.Key)) { budget.Value += catItem.Value; } if (budget.Value != 0d) { item.Budgets.Add(budget); } } result.Add(item); } return(result); }