public async Task ItemCase_Save_DoesSave() { // Arrange ItemList itemList = new ItemList { Name = Guid.NewGuid().ToString() }; await itemList.Create(DbContext); Item item = new Item { Name = Guid.NewGuid().ToString(), Description = Guid.NewGuid().ToString(), Enabled = true, ItemListId = itemList.Id, }; await item.Save(DbContext); ItemCase itemCase = new ItemCase { MicrotingSdkSiteId = 24, MicrotingSdkCaseId = 34, MicrotingSdkeFormId = 234, Status = 66, ItemId = item.Id, }; // Act await itemCase.Create(DbContext); List <ItemCase> itemCases = DbContext.ItemCases.AsNoTracking().ToList(); List <ItemCaseVersion> itemCaseVersions = DbContext.ItemCaseVersions.AsNoTracking().ToList(); // Assert Assert.AreEqual(1, itemCases.Count); Assert.AreEqual(1, itemCaseVersions.Count); Assert.AreEqual(itemCase.MicrotingSdkSiteId, itemCases[0].MicrotingSdkSiteId); Assert.AreEqual(itemCase.MicrotingSdkCaseId, itemCases[0].MicrotingSdkCaseId); Assert.AreEqual(itemCase.MicrotingSdkeFormId, itemCases[0].MicrotingSdkeFormId); Assert.AreEqual(itemCase.Status, itemCases[0].Status); Assert.AreEqual(itemCase.ItemId, itemCases[0].ItemId); Assert.AreEqual(Constants.WorkflowStates.Created, itemCases[0].WorkflowState); Assert.AreEqual(itemCase.Id, itemCases[0].Id); Assert.AreEqual(1, itemCases[0].Version); Assert.AreEqual(itemCase.MicrotingSdkSiteId, itemCaseVersions[0].MicrotingSdkSiteId); Assert.AreEqual(itemCase.MicrotingSdkCaseId, itemCaseVersions[0].MicrotingSdkCaseId); Assert.AreEqual(itemCase.MicrotingSdkeFormId, itemCaseVersions[0].MicrotingSdkeFormId); Assert.AreEqual(itemCase.Status, itemCaseVersions[0].Status); Assert.AreEqual(itemCase.ItemId, itemCaseVersions[0].ItemId); Assert.AreEqual(Constants.WorkflowStates.Created, itemCaseVersions[0].WorkflowState); Assert.AreEqual(itemCase.Id, itemCaseVersions[0].ItemCaseId); Assert.AreEqual(1, itemCaseVersions[0].Version); }
public async Task Handle(ItemCaseCreate message) { Item item = await _dbContext.Items.SingleOrDefaultAsync(x => x.Id == message.ItemId); if (item != null) { var siteIds = await _dbContext.PluginConfigurationValues.FirstOrDefaultAsync(x => x.Name == "ItemsPlanningBaseSettings:SiteIds"); Language language = await _sdkCore.DbContextHelper.GetDbContext().Languages .SingleAsync(x => x.LanguageCode == "da"); var mainElement = _sdkCore.ReadeForm(message.RelatedEFormId, language); string folderId = GetFolderId(message.Name).ToString(); ItemCase itemCase = await _dbContext.ItemCases.SingleOrDefaultAsync(x => x.ItemId == item.Id && x.WorkflowState != Constants.WorkflowStates.Retracted); if (itemCase != null) { itemCase.WorkflowState = Constants.WorkflowStates.Retracted; await itemCase.Update(_dbContext); } itemCase = new ItemCase { ItemId = item.Id, Status = 66, MicrotingSdkeFormId = message.RelatedEFormId }; await itemCase.Create(_dbContext); foreach (var siteIdString in siteIds.Value.Split(',')) { var siteId = int.Parse(siteIdString); var casesToDelete = _dbContext.ItemCaseSites. Where(x => x.ItemId == item.Id && x.MicrotingSdkSiteId == siteId && x.WorkflowState != Constants.WorkflowStates.Retracted); foreach (ItemCaseSite caseToDelete in casesToDelete) { CaseDto caseDto = await _sdkCore.CaseLookupCaseId(caseToDelete.MicrotingSdkCaseId); if (caseDto.MicrotingUId != null) { await _sdkCore.CaseDelete((int)caseDto.MicrotingUId); } caseToDelete.WorkflowState = Constants.WorkflowStates.Retracted; await caseToDelete.Update(_dbContext); } mainElement.Result.Label = string.IsNullOrEmpty(item.ItemNumber) ? "" : item.ItemNumber; if (!string.IsNullOrEmpty(item.Name)) { mainElement.Result.Label += string.IsNullOrEmpty(mainElement.Result.Label) ? $"{item.Name}" : $" - {item.Name}"; } if (!string.IsNullOrEmpty(item.BuildYear)) { mainElement.Result.Label += string.IsNullOrEmpty(mainElement.Result.Label) ? $"{item.BuildYear}" : $" - {item.BuildYear}"; } if (!string.IsNullOrEmpty(item.Type)) { mainElement.Result.Label += string.IsNullOrEmpty(mainElement.Result.Label) ? $"{item.Type}" : $" - {item.Type}"; } mainElement.Result.ElementList[0].Label = mainElement.Result.Label; mainElement.Result.CheckListFolderName = folderId; mainElement.Result.StartDate = DateTime.Now.ToUniversalTime(); mainElement.Result.EndDate = DateTime.Now.AddYears(10).ToUniversalTime(); ItemCaseSite itemCaseSite = await _dbContext.ItemCaseSites.SingleOrDefaultAsync(x => x.ItemCaseId == itemCase.Id && x.MicrotingSdkSiteId == siteId); if (itemCaseSite == null) { itemCaseSite = new ItemCaseSite { MicrotingSdkSiteId = siteId, MicrotingSdkeFormId = message.RelatedEFormId, Status = 66, ItemId = item.Id, ItemCaseId = itemCase.Id }; await itemCaseSite.Create(_dbContext); } if (itemCaseSite.MicrotingSdkCaseId >= 1) { continue; } int?caseId = await _sdkCore.CaseCreate(await mainElement, "", siteId, null); if (caseId != null) { CaseDto caseDto = await _sdkCore.CaseLookupMUId((int)caseId); if (caseDto?.CaseId != null) { itemCaseSite.MicrotingSdkCaseId = (int)caseDto.CaseId; } await itemCaseSite.Update(_dbContext); } } } }
public async Task UploadedData_Update_DoesUpdate() { //Arrange ItemList itemList = new ItemList { Name = Guid.NewGuid().ToString() }; await itemList.Create(DbContext); Item item = new Item { Name = Guid.NewGuid().ToString(), Description = Guid.NewGuid().ToString(), Enabled = true, ItemListId = itemList.Id, }; await item.Create(DbContext); ItemCase itemCase = new ItemCase { MicrotingSdkSiteId = 24, MicrotingSdkCaseId = 34, MicrotingSdkeFormId = 234, Status = 66, ItemId = item.Id, }; await itemCase.Create(DbContext); UploadedData uploadedData = new UploadedData { ItemCaseId = itemCase.Id, Checksum = Guid.NewGuid().ToString(), Extension = Guid.NewGuid().ToString(), CurrentFile = Guid.NewGuid().ToString(), UploaderType = Guid.NewGuid().ToString(), FileLocation = Guid.NewGuid().ToString(), FileName = Guid.NewGuid().ToString() }; await uploadedData.Create(DbContext); string newCheckSum = Guid.NewGuid().ToString(); string newExtension = Guid.NewGuid().ToString(); string newCurrentFile = Guid.NewGuid().ToString(); string newUploaderType = Guid.NewGuid().ToString(); string newFileLocation = Guid.NewGuid().ToString(); string newFileName = Guid.NewGuid().ToString(); uploadedData.Checksum = newCheckSum; uploadedData.Extension = newExtension; uploadedData.CurrentFile = newCurrentFile; uploadedData.UploaderType = newUploaderType; uploadedData.FileLocation = newFileLocation; uploadedData.FileName = newFileName; //Act await uploadedData.Update(DbContext); UploadedData dbUploadedData = DbContext.UploadedDatas.AsNoTracking().First(); List <UploadedData> uploadedDataList = DbContext.UploadedDatas.AsNoTracking().ToList(); List <UploadedDataVersion> uploadedDataVersionList = DbContext.UploadedDataVersions.AsNoTracking().ToList(); //Assert Assert.NotNull(dbUploadedData); Assert.AreEqual(1, uploadedDataList.Count); Assert.AreEqual(2, uploadedDataVersionList.Count); Assert.AreEqual(newCheckSum, dbUploadedData.Checksum); Assert.AreEqual(newExtension, dbUploadedData.Extension); Assert.AreEqual(newCurrentFile, dbUploadedData.CurrentFile); Assert.AreEqual(newUploaderType, dbUploadedData.UploaderType); Assert.AreEqual(newFileLocation, dbUploadedData.FileLocation); Assert.AreEqual(newFileName, dbUploadedData.FileName); Assert.AreEqual(uploadedData.ItemCaseId, dbUploadedData.ItemCaseId); }