private ActivityTemplateDO[] GenerateSeedData() { using (var uow = ObjectFactory.GetInstance <IUnitOfWork>()) { var terminals = GenerateTerminals(5).ToArray(); foreach (var terminal in terminals) { uow.TerminalRepository.Add(terminal); } var webServices = new ActivityCategoryDO[5]; for (int i = 1; i <= 5; i++) { webServices[i - 1] = CreateWebService(i); uow.ActivityCategoryRepository.Add(webServices[i - 1]); } uow.SaveChanges(); var templates = new ActivityTemplateDO[20]; for (int i = 1; i <= 20; i++) { templates[i - 1] = CreateActivityTemplate(FixtureData.GetTestGuidById(i), terminals[i % 5], webServices[i % 5]); uow.ActivityTemplateRepository.Add(templates[i - 1]); } uow.SaveChanges(); return(templates); } }
private ActivityTemplateDO Clone(ActivityTemplateDO source) { var newTemplate = new ActivityTemplateDO(); CopyPropertiesHelper.CopyProperties(source, newTemplate, false); newTemplate.Terminal = _terminal.GetByKey(source.TerminalId); if (source.Categories != null) { newTemplate.Categories = new List <ActivityCategorySetDO>(); foreach (var acs in source.Categories) { var newActivityCategory = new ActivityCategoryDO(); var activityCategory = _activityCategory.GetById(acs.ActivityCategoryId); CopyPropertiesHelper.CopyProperties(activityCategory, newActivityCategory, false); newTemplate.Categories.Add(new ActivityCategorySetDO() { ActivityTemplateId = newTemplate.Id, ActivityTemplate = newTemplate, ActivityCategoryId = newActivityCategory.Id, ActivityCategory = newActivityCategory }); } } return(newTemplate); }
private ActivityCategoryDO Clone(ActivityCategoryDO activityCategory) { var newActivityCategory = new ActivityCategoryDO(); CopyPropertiesHelper.CopyProperties(activityCategory, newActivityCategory, false); return(newActivityCategory); }
private static bool AreEqual(ActivityCategoryDO a, ActivityCategoryDO b, bool skipId = false) { return(a.IconPath == b.IconPath && (skipId || a.Id == b.Id) && a.Name == b.Name); }
private ActivityTemplateDO CreateActivityTemplate(Guid id, TerminalDO terminal, ActivityCategoryDO webService, string prefix = "") { var result = new ActivityTemplateDO { Id = id, ActivityTemplateState = 1, MinPaneWidth = 330, Description = prefix + "des" + id, Name = "name" + id, Label = prefix + "label" + id, NeedsAuthentication = true, Tags = prefix + "tags" + id, TerminalId = terminal.Id, Terminal = terminal, Type = ActivityType.Standard, Version = "1" }; result.Categories = new List <ActivityCategorySetDO>() { new ActivityCategorySetDO() { ActivityCategory = webService, ActivityTemplate = result } }; return(result); }
private void AddOrUpdateActivityCategory(IUnitOfWork uow, Guid id, string name, string iconPath) { var activityTemplateAssignments = new List <ActivityTemplateDO>(); var existingActivityCategoryByName = uow.ActivityCategoryRepository .GetQuery() .FirstOrDefault(x => x.Name == name && x.Id != id); if (existingActivityCategoryByName != null) { var existingAssignments = uow.ActivityCategorySetRepository.GetQuery() .Where(x => x.ActivityCategoryId == existingActivityCategoryByName.Id) .ToList(); foreach (var assignment in existingAssignments) { activityTemplateAssignments.Add(assignment.ActivityTemplate); uow.ActivityCategorySetRepository.Remove(assignment); } uow.SaveChanges(); uow.ActivityCategoryRepository.Remove(existingActivityCategoryByName); uow.SaveChanges(); } var activityCategory = uow.ActivityCategoryRepository .GetQuery() .FirstOrDefault(x => x.Id == id); if (activityCategory == null) { activityCategory = new ActivityCategoryDO() { Id = id, Name = name, IconPath = iconPath, Type = null }; uow.ActivityCategoryRepository.Add(activityCategory); } else { activityCategory.IconPath = iconPath; } foreach (var assignedActivityTemplate in activityTemplateAssignments) { if (!string.IsNullOrEmpty(assignedActivityTemplate.Terminal.Name)) { uow.ActivityCategorySetRepository.Add( new ActivityCategorySetDO() { Id = Guid.NewGuid(), ActivityCategoryId = activityCategory.Id, ActivityCategory = activityCategory, ActivityTemplateId = assignedActivityTemplate.Id, ActivityTemplate = assignedActivityTemplate }); } } uow.SaveChanges(); }
public ActivityCategoryDO RegisterOrUpdate(ActivityCategoryDO activityCategory) { if (!IsATandTCacheDisabled) { Initialize(); } lock (_activityCategories) { using (var uow = ObjectFactory.GetInstance <IUnitOfWork>()) { var activityCategoryByName = uow.ActivityCategoryRepository .GetQuery() .FirstOrDefault(x => x.Name == activityCategory.Name && x.Id != activityCategory.Id); if (activityCategory.Id != Guid.Empty) { var activityTemplateAssignments = new List <ActivityTemplateDO>(); if (activityCategoryByName != null) { var existingAssignments = uow.ActivityCategorySetRepository.GetQuery() .Where(x => x.ActivityCategoryId == activityCategoryByName.Id) .ToList(); foreach (var assignment in existingAssignments) { activityTemplateAssignments.Add(assignment.ActivityTemplate); uow.ActivityCategorySetRepository.Remove(assignment); } uow.SaveChanges(); uow.ActivityCategoryRepository.Remove(activityCategoryByName); uow.SaveChanges(); } var activityCategoryById = uow.ActivityCategoryRepository .GetQuery() .FirstOrDefault(x => x.Id == activityCategory.Id); if (activityCategoryById == null) { activityCategoryById = new ActivityCategoryDO() { Id = activityCategory.Id, Name = activityCategory.Name, IconPath = activityCategory.IconPath, Type = activityCategory.Type }; uow.ActivityCategoryRepository.Add(activityCategoryById); } else { activityCategoryById.IconPath = activityCategory.IconPath; activityCategoryById.Type = activityCategory.Type; } foreach (var assignedActivityTemplate in activityTemplateAssignments) { uow.ActivityCategorySetRepository.Add( new ActivityCategorySetDO() { Id = Guid.NewGuid(), ActivityCategoryId = activityCategory.Id, ActivityCategory = activityCategory, ActivityTemplateId = assignedActivityTemplate.Id, ActivityTemplate = assignedActivityTemplate } ); } _activityCategories[activityCategoryById.Id] = Clone(activityCategoryById); uow.SaveChanges(); return(activityCategoryById); } else { if (activityCategoryByName == null) { activityCategoryByName = new ActivityCategoryDO() { Id = Guid.NewGuid(), Name = activityCategory.Name, IconPath = activityCategory.IconPath, Type = activityCategory.Type }; uow.ActivityCategoryRepository.Add(activityCategoryByName); } else { activityCategoryByName.IconPath = activityCategory.IconPath; activityCategoryByName.Type = activityCategory.Type; } _activityCategories[activityCategoryByName.Id] = Clone(activityCategoryByName); uow.SaveChanges(); return(activityCategoryByName); } } } }