//-> Create public async Task <ItemGroupViewDTO> Create(ItemGroupNewDTO newDTO) { newDTO = StringHelper.TrimStringProperties(newDTO); var checkName = await db.tblItemGroups.FirstOrDefaultAsync(r => r.itmg_Deleted == null && r.name == newDTO.name); // check whether itemgroup name exist or not if (checkName != null) { throw new HttpException((int)HttpStatusCode.BadRequest, "This name already exsits"); } using (var transaction = db.Database.BeginTransaction()) { try { tblItemGroup itemGroup = (tblItemGroup)Helper.Helper.MapDTOToDBClass <ItemGroupNewDTO, tblItemGroup>(newDTO, new tblItemGroup()); itemGroup.itmg_CreatedDate = DateTime.Now; db.tblItemGroups.Add(itemGroup); await db.SaveChangesAsync(); List <sm_doc> documents = await Helper.Helper.SaveUploadImage(db, itemGroup.name, Helper.Helper.document_ItemGroupTableID, itemGroup.id, newDTO.images);// tmp not useful , just reserve data for using in the furture transaction.Commit(); return(await SelectByID(itemGroup.id)); } catch (Exception ex) { transaction.Rollback(); throw new Exception(ex.Message); } } }
//-> uploadimages public async Task <ItemGroupViewDTO> UploadImages(ItemGroupUploadImageDTO itemGroupUploadImage) { tblItemGroup itemGroup = db.tblItemGroups.FirstOrDefault(r => r.itmg_Deleted == null && r.id == itemGroupUploadImage.id); if (itemGroup == null) { throw new HttpException((int)HttpStatusCode.NotFound, "This record does not exsists or has been deleted"); } using (var transaction = db.Database.BeginTransaction()) { try { List <sm_doc> documents = await DocumentHelper.SaveUploadImage(db, ConstantHelper.document_ItemGroupTableID, itemGroupUploadImage.id, itemGroupUploadImage.base64s); transaction.Commit(); return(await SelectByID(itemGroup.id)); } catch (Exception ex) { transaction.Rollback(); throw new Exception(ex.Message); } } }
//-> Edit public async Task <ItemGroupViewDTO> Edit(ItemGroupEditDTO editDTO) { //TODO -- when edit -> //user can add new image or delete current images i mean documents editDTO = StringHelper.TrimStringProperties(editDTO); tblItemGroup itemGroup = db.tblItemGroups.FirstOrDefault(r => r.itmg_Deleted == null && r.id == editDTO.id); if (itemGroup == null) { throw new HttpException((int)HttpStatusCode.NotFound, "This record has been deleted"); } var checkName = await db.tblItemGroups.FirstOrDefaultAsync(r => r.itmg_Deleted == null && r.name == editDTO.name && r.id != editDTO.id); if (checkName != null) { throw new HttpException((int)HttpStatusCode.BadRequest, "This name already exsits"); } using (var transaction = db.Database.BeginTransaction()) { try { itemGroup.itmg_UpdatedDate = DateTime.Now; itemGroup = (tblItemGroup)Helper.Helper.MapDTOToDBClass <ItemGroupEditDTO, tblItemGroup>(editDTO, itemGroup); db.Entry(itemGroup).State = EntityState.Modified; await db.SaveChangesAsync(); List <sm_doc> documents = await Helper.Helper.SaveUploadImage(db, itemGroup.name, Helper.Helper.document_ItemGroupTableID, itemGroup.id, editDTO.images);// tmp not useful , just reserve data for using in the furture transaction.Commit(); return(await SelectByID(itemGroup.id)); } catch (Exception ex) { transaction.Rollback(); throw new Exception(ex.Message); } } }