public virtual IActionResult EquipmentAttachmentsPost([FromBody] HetEquipmentAttachment item) { // not found if (item == null) { return(new ObjectResult(new HetsResponse("HETS-01", ErrorViewModel.GetDescription("HETS-01", _configuration)))); } // create record HetEquipmentAttachment equipmentAttachment = new HetEquipmentAttachment { ConcurrencyControlNumber = item.ConcurrencyControlNumber, Description = item.TypeName, TypeName = item.TypeName, EquipmentId = item.Equipment.EquipmentId }; // save the changes _context.HetEquipmentAttachment.Add(equipmentAttachment); _context.SaveChanges(); // get the id (in the case of new records) int id = equipmentAttachment.EquipmentAttachmentId; // return the updated condition type record HetEquipmentAttachment updEquipmentAttachment = _context.HetEquipmentAttachment.AsNoTracking() .Include(x => x.Equipment) .FirstOrDefault(a => a.EquipmentAttachmentId == id); return(new ObjectResult(new HetsResponse(updEquipmentAttachment))); }
public virtual IActionResult EquipmentAttachmentsBulkPost([FromBody] HetEquipmentAttachment[] items) { // not found if (items == null || items.Length < 1) { return(new NotFoundObjectResult(new HetsResponse("HETS-01", ErrorViewModel.GetDescription("HETS-01", _configuration)))); } // process each attachment records foreach (HetEquipmentAttachment item in items) { HetEquipmentAttachment equipmentAttachment = new HetEquipmentAttachment { ConcurrencyControlNumber = item.ConcurrencyControlNumber, Description = item.TypeName, TypeName = item.TypeName, EquipmentId = item.Equipment.EquipmentId }; // save the changes _context.HetEquipmentAttachment.Add(equipmentAttachment); } _context.SaveChanges(); // return all equipment attachments int id = items[0].Equipment.EquipmentId; List <HetEquipmentAttachment> attachments = _context.HetEquipmentAttachment.AsNoTracking() .Where(x => x.EquipmentId == id).ToList(); return(new ObjectResult(new HetsResponse(attachments))); }
public virtual IActionResult EquipmentAttachmentsIdDeletePost([FromRoute] int id) { bool exists = _context.HetEquipmentAttachment.Any(a => a.EquipmentAttachmentId == id); // not found if (!exists) { return(new ObjectResult(new HetsResponse("HETS-01", ErrorViewModel.GetDescription("HETS-01", _configuration)))); } HetEquipmentAttachment item = _context.HetEquipmentAttachment .Include(x => x.Equipment) .First(a => a.EquipmentAttachmentId == id); _context.HetEquipmentAttachment.Remove(item); // save the changes _context.SaveChanges(); return(new ObjectResult(new HetsResponse(item))); }
public virtual IActionResult EquipmentAttachmentsIdPut([FromRoute] int id, [FromBody] HetEquipmentAttachment item) { if (id != item.EquipmentAttachmentId) { // not found return(new ObjectResult(new HetsResponse("HETS-01", ErrorViewModel.GetDescription("HETS-01", _configuration)))); } bool exists = _context.HetEquipmentAttachment.Any(a => a.EquipmentAttachmentId == id); if (!exists) { // not found return(new ObjectResult(new HetsResponse("HETS-01", ErrorViewModel.GetDescription("HETS-01", _configuration)))); } // get record HetEquipmentAttachment equipmentAttachment = _context.HetEquipmentAttachment .First(x => x.EquipmentAttachmentId == id); equipmentAttachment.ConcurrencyControlNumber = item.ConcurrencyControlNumber; equipmentAttachment.Description = item.TypeName; equipmentAttachment.TypeName = item.TypeName; equipmentAttachment.EquipmentId = item.Equipment.EquipmentId; _context.HetEquipmentAttachment.Update(equipmentAttachment); // save the changes _context.SaveChanges(); // return the updated condition type record HetEquipmentAttachment updEquipmentAttachment = _context.HetEquipmentAttachment.AsNoTracking() .Include(x => x.Equipment) .FirstOrDefault(a => a.EquipmentAttachmentId == id); return(new ObjectResult(new HetsResponse(updEquipmentAttachment))); }
/// <summary> /// Import Equipment Attachments /// </summary> /// <param name="performContext"></param> /// <param name="dbContext"></param> /// <param name="fileLocation"></param> /// <param name="systemId"></param> public static void Import(PerformContext performContext, DbAppContext dbContext, string fileLocation, string systemId) { // check the start point. If startPoint == sigId then it is already completed int startPoint = ImportUtility.CheckInterMapForStartPoint(dbContext, OldTableProgress, BcBidImport.SigId, NewTable); if (startPoint == BcBidImport.SigId) // This means the import job it has done today is complete for all the records in the xml file. { performContext.WriteLine("*** Importing " + XmlFileName + " is complete from the former process ***"); return; } int maxEquipAttachIndex = 0; if (dbContext.HetEquipmentAttachment.Any()) { maxEquipAttachIndex = dbContext.HetEquipmentAttachment.Max(x => x.EquipmentAttachmentId); } try { string rootAttr = "ArrayOf" + OldTable; // create progress indicator performContext.WriteLine("Processing " + OldTable); IProgressBar progress = performContext.WriteProgressBar(); progress.SetValue(0); // create serializer and serialize xml file XmlSerializer ser = new XmlSerializer(typeof(ImportModels.EquipAttach[]), new XmlRootAttribute(rootAttr)); MemoryStream memoryStream = ImportUtility.MemoryStreamGenerator(XmlFileName, OldTable, fileLocation, rootAttr); ImportModels.EquipAttach[] legacyItems = (ImportModels.EquipAttach[])ser.Deserialize(memoryStream); int ii = startPoint; // skip the portion already processed if (startPoint > 0) { legacyItems = legacyItems.Skip(ii).ToArray(); } Debug.WriteLine("Importing Equipment Attachment Data. Total Records: " + legacyItems.Length); foreach (ImportModels.EquipAttach item in legacyItems.WithProgress(progress)) { // see if we have this one already. We used old combine because item.Equip_Id is not unique string oldKeyCombined = (item.Equip_Id ?? 0 * 100 + item.Attach_Seq_Num ?? 0).ToString(); HetImportMap importMap = dbContext.HetImportMap.AsNoTracking() .FirstOrDefault(x => x.OldTable == OldTable && x.OldKey == oldKeyCombined); // new entry if (importMap == null && item.Equip_Id > 0) { HetEquipmentAttachment instance = null; CopyToInstance(dbContext, item, ref instance, systemId, ref maxEquipAttachIndex); ImportUtility.AddImportMap(dbContext, OldTable, oldKeyCombined, NewTable, instance.EquipmentAttachmentId); } // save change to database periodically to avoid frequent writing to the database if (++ii % 1000 == 0) { try { ImportUtility.AddImportMapForProgress(dbContext, OldTableProgress, ii.ToString(), BcBidImport.SigId, NewTable); dbContext.SaveChangesForImport(); } catch (Exception e) { performContext.WriteLine("Error saving data " + e.Message); } } } try { performContext.WriteLine("*** Importing " + XmlFileName + " is Done ***"); ImportUtility.AddImportMapForProgress(dbContext, OldTableProgress, BcBidImport.SigId.ToString(), BcBidImport.SigId, NewTable); dbContext.SaveChangesForImport(); } catch (Exception e) { string temp = string.Format("Error saving data (EquipmentAttachmentIndex: {0}): {1}", maxEquipAttachIndex, e.Message); performContext.WriteLine(temp); throw new DataException(temp); } } catch (Exception e) { performContext.WriteLine("*** ERROR ***"); performContext.WriteLine(e.ToString()); throw; } }
/// <summary> /// Map data /// </summary> /// <param name="dbContext"></param> /// <param name="oldObject"></param> /// <param name="equipAttach"></param> /// <param name="systemId"></param> /// <param name="maxEquipAttachIndex"></param> private static void CopyToInstance(DbAppContext dbContext, ImportModels.EquipAttach oldObject, ref HetEquipmentAttachment equipAttach, string systemId, ref int maxEquipAttachIndex) { try { if (oldObject.Equip_Id <= 0) { return; } equipAttach = new HetEquipmentAttachment { EquipmentAttachmentId = ++maxEquipAttachIndex }; // ************************************************ // get the imported equipment record map // ************************************************ string tempId = oldObject.Equip_Id.ToString(); HetImportMap map = dbContext.HetImportMap.AsNoTracking() .FirstOrDefault(x => x.OldKey == tempId && x.OldTable == ImportEquip.OldTable && x.NewTable == ImportEquip.NewTable); if (map == null) { return; // ignore and move to the next record } // ************************************************ // get the equipment record // ************************************************ HetEquipment equipment = dbContext.HetEquipment.AsNoTracking() .FirstOrDefault(x => x.EquipmentId == map.NewKey); if (equipment == null) { return; // ignore and move to the next record } // ************************************************ // set the equipment attachment attributes // ************************************************ int tempEquipmentId = equipment.EquipmentId; equipAttach.EquipmentId = tempEquipmentId; string tempDescription = ImportUtility.CleanString(oldObject.Attach_Desc); if (string.IsNullOrEmpty(tempDescription)) { return; // don't add blank attachments } tempDescription = ImportUtility.GetCapitalCase(tempDescription); // populate Name and Description with the same value equipAttach.Description = tempDescription; equipAttach.TypeName = tempDescription; // *********************************************** // create equipment attachment // *********************************************** equipAttach.AppCreateUserid = systemId; equipAttach.AppCreateTimestamp = DateTime.UtcNow; equipAttach.AppLastUpdateUserid = systemId; equipAttach.AppLastUpdateTimestamp = DateTime.UtcNow; dbContext.HetEquipmentAttachment.Add(equipAttach); } catch (Exception ex) { Debug.WriteLine("***Error*** - Equipment Attachment: " + equipAttach.Description); Debug.WriteLine("***Error*** - Master Equipment Attachment Index: " + maxEquipAttachIndex); Debug.WriteLine(ex.Message); throw; } }