コード例 #1
0
        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);
        }
コード例 #2
0
        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);
                    }
                }
            }
        }
コード例 #3
0
        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);
        }