예제 #1
0
        //-> 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);
                }
            }
        }
예제 #2
0
        //-> 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);
                }
            }
        }
예제 #3
0
        //-> 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);
                }
            }
        }