public void SaveStoreGradeSize(StoreGradeSizeDTO storeGradeSizeDTO) { double sizeQuantity = 0; var result = this.UnitOfWork.Get <StoreGradeSize>().AsQueryable() .FirstOrDefault(e => e.StoreId == storeGradeSizeDTO.StoreId && e.GradeId == storeGradeSizeDTO.GradeId && e.SizeId == storeGradeSizeDTO.SizeId); if (result == null) { var storeGradeSize = new StoreGradeSize() { GradeId = storeGradeSizeDTO.GradeId, SizeId = storeGradeSizeDTO.SizeId, StoreId = storeGradeSizeDTO.StoreId, Quantity = storeGradeSizeDTO.Quantity, TimeStamp = DateTime.Now }; this.UnitOfWork.Get <StoreGradeSize>().AddNew(storeGradeSize); this.UnitOfWork.SaveChanges(); } else { sizeQuantity = result.Quantity + storeGradeSizeDTO.Quantity; result.StoreId = storeGradeSizeDTO.StoreId; result.SizeId = storeGradeSizeDTO.SizeId; result.GradeId = storeGradeSizeDTO.GradeId; result.Quantity = sizeQuantity; result.TimeStamp = DateTime.Now; this.UnitOfWork.Get <StoreGradeSize>().Update(result); this.UnitOfWork.SaveChanges(); } }
/// <summary> /// Maps StoreGradeSize EF object to StoreGradeSize Model Object and /// returns the StoreGradeSize model object. /// </summary> /// <param name="result">EF StoreGradeSize object to be mapped.</param> /// <returns>StoreGradeSize Model Object.</returns> public StoreGradeSize MapEFToModel(EF.Models.StoreGradeSize data) { var storeGradeSize = new StoreGradeSize() { GradeId = data.GradeId, Quantity = data.Quantity, SizeId = data.SizeId, SizeValue = data.Size.Value, GradeValue = data.Grade.Value, StoreId = data.StoreId, StoreName = data.Store != null ? data.Store.Name : "", TimeStamp = data.TimeStamp, }; //List<Grade> grades = new List<Grade>(); //var distinctGrade = this._dataService.GetGrade(storeGradeSize.GradeId); //var grade = new Grade() //{ // GradeId = distinctGrade.GradeId, // Value = distinctGrade.Value, //}; //var results = this._dataService.GetStoreGradeSizeForParticularGradeAtAStore(storeGradeSize.GradeId, storeGradeSize.StoreId); //foreach (var gradeItem in results) //{ // List<Denomination> denominations = new List<Denomination>(); // var distinctSize = this._dataService.GetSize(gradeItem.SizeId); // var denomination = new Denomination() // { // DenominationId = distinctSize.SizeId, // Value = distinctSize.Value, // Quantity = data.Quantity, // }; // denominations.Add(denomination); // grade.Denominations = denominations; //} //grades.Add(grade); //storeGradeSize.Grades = grades; return(storeGradeSize); }