public IActionResult Add(TechnologyEntity technology, string StatusRemarks, bool isSubcategoryInQuery) { int errorCode = 0; string nextID = ""; try { nextID = SequenceHelper.GetNextSequence(Constants.ID, Constants.TABLE_TECHNOLOGY, Constants.PADDING_TECHNOLOGYID); technology.RowKey = technology.RowKey + "_" + nextID; technology.Description = technology.Description ?? ""; technology.Tag = InsertTag(technology.NewTag, technology.Tag); DuplicateCheckEntity duplicateCheck = new DuplicateCheckEntity(technology.PartitionKey, technology.SubcategoryID + "_" + technology.NameHash); TechnologyStatusEntity technologyStatus = GetTechnologyStatusEntity(technology.PartitionKey, nextID, technology.Status, StatusRemarks); TableStorageHelper.InsertBatchAsync(Constants.TABLE_TECHNOLOGY, duplicateCheck, technology, technologyStatus).Wait(); } catch (Exception ex) { nextID = ""; if (!TableStorageHelper.IsStorageException(ex, out errorCode)) { errorCode = Constants.ERROR_CODE_COMMON; } } return(RedirectToAction("Index", new { errorCode = errorCode, category = technology.PartitionKey, subcategory = ((isSubcategoryInQuery) ? technology.SubcategoryID : ""), technology = nextID })); }
public IActionResult Edit(TechnologyEntity technology, string OriginalNameHash, bool isSubcategoryInQuery) { int errorCode = 0; try { technology.Description = technology.Description ?? ""; technology.Tag = InsertTag(technology.NewTag, technology.Tag); if (OriginalNameHash.Equals(technology.NameHash)) { TableStorageHelper.MergeAsync(Constants.TABLE_TECHNOLOGY, technology).Wait(); } else { DuplicateCheckEntity duplicateCheckOriginalDelete = new DuplicateCheckEntity(technology.PartitionKey, technology.SubcategoryID + "_" + OriginalNameHash); duplicateCheckOriginalDelete.ETag = "*"; DuplicateCheckEntity duplicateCheckNewAdd = new DuplicateCheckEntity(technology.PartitionKey, technology.SubcategoryID + "_" + technology.NameHash); TableStorageHelper.BatchAsync(Constants.TABLE_TECHNOLOGY, new DuplicateCheckEntity[] { duplicateCheckOriginalDelete }, new DuplicateCheckEntity[] { duplicateCheckNewAdd }, new TechnologyEntity[] { technology }).Wait(); } } catch (Exception ex) { if (!TableStorageHelper.IsStorageException(ex, out errorCode)) { errorCode = Constants.ERROR_CODE_COMMON; } } return(RedirectToAction("Index", new { errorCode = errorCode, category = technology.PartitionKey, subcategory = ((isSubcategoryInQuery) ? technology.SubcategoryID : ""), technology = technology.ID })); }