public async Task <BaseResponse <bool> > CreateRangeAsync(List <HotelAttributeValueCreateModels> model) { try { if (model == null) { return(BaseResponse <bool> .BadRequest()); } var createItems = new List <HotelAttributeValues>(); foreach (var item in model) { var createItem = new HotelAttributeValues(); createItem.InjectFrom(item); createItem.BasedAffective = false; createItem.LastModifiedBy = GetUserGuidId(); createItem.LastModifiedDate = DateTime.UtcNow; createItems.Add(createItem); } if (createItems.Count() > 0) { await _db.HotelAttributeValues.AddRangeAsync(createItems); await _db.SaveChangesAsync(); return(BaseResponse <bool> .Success(true)); } return(BaseResponse <bool> .BadRequest(false)); } catch (Exception ex) { return(BaseResponse <bool> .InternalServerError(message : ex.Message, fullMsg : ex.StackTrace)); } }
public async Task <BaseResponse <bool> > UpdateAttributeValueRangeAsync(HotelAttributeValueUpdateRangeModel updateModel) { try { if (updateModel == null) { return(BaseResponse <bool> .BadRequest()); } var userId = GetUserGuidId(); if (updateModel == null || updateModel.ListAttributeId == null || updateModel.ListAttributeValue == null) { return(BaseResponse <bool> .BadRequest()); } if (_db.HotelAttributeValues.AsNoTracking().Any(k => k.AttributeCategoryFid == updateModel.AttributeCategoryFid && k.HotelFid == updateModel.HotelFid)) { if (updateModel.ListAttributeId.Count() == 0 && updateModel.ListAttributeValue.Count() == 0) { var data = _db.HotelAttributeValues.Where(k => k.AttributeCategoryFid == updateModel.AttributeCategoryFid && k.HotelFid == updateModel.HotelFid); _db.RemoveRange(data); _db.SaveChanges(); return(BaseResponse <bool> .Success(true)); } else { // step 1 : remove all current attribute of Hotel in db var data = _db.HotelAttributeValues.Where(k => k.AttributeCategoryFid == updateModel.AttributeCategoryFid && k.HotelFid == updateModel.HotelFid); _db.RemoveRange(data); _db.SaveChanges(); // step 2: add new all attribute to db if (updateModel.ListAttributeId.Count() > 0 && updateModel.ListAttributeValue.Count() > 0 && updateModel.ListAttributeId.Count() == updateModel.ListAttributeValue.Count()) { var listAttributeId = updateModel.ListAttributeId; var listAtrributeValue = updateModel.ListAttributeValue; var lstattribute = new List <HotelAttributeValues>(); for (int i = 0; i < listAttributeId.Count; i++) { var attributeValue = new HotelAttributeValues() { HotelFid = updateModel.HotelFid, AttributeCategoryFid = updateModel.AttributeCategoryFid, AttributeFid = listAttributeId[i], AttributeValue = listAtrributeValue[i], EffectiveDate = DateTime.Now, LastModifiedBy = userId, LastModifiedDate = DateTime.UtcNow }; // add to list lstattribute.Add(attributeValue); } if (lstattribute.Count > 0) { await _db.HotelAttributeValues.AddRangeAsync(lstattribute); await _db.SaveChangesAsync(); return(BaseResponse <bool> .Success(true)); } } return(BaseResponse <bool> .NoContent(false)); } } else { if (updateModel.ListAttributeId.Count() > 0 && updateModel.ListAttributeValue.Count() > 0 && updateModel.ListAttributeId.Count() == updateModel.ListAttributeValue.Count()) { var listAttributeId = updateModel.ListAttributeId; var listAtrributeValue = updateModel.ListAttributeValue; var lstattribute = new List <HotelAttributeValues>(); for (int i = 0; i < listAttributeId.Count; i++) { var attributeValue = new HotelAttributeValues() { HotelFid = updateModel.HotelFid, AttributeCategoryFid = updateModel.AttributeCategoryFid, AttributeFid = listAttributeId[i], AttributeValue = listAtrributeValue[i], EffectiveDate = DateTime.Now, LastModifiedBy = userId, LastModifiedDate = DateTime.UtcNow }; // add to list lstattribute.Add(attributeValue); } if (lstattribute.Count > 0) { await _db.HotelAttributeValues.AddRangeAsync(lstattribute); await _db.SaveChangesAsync(); return(BaseResponse <bool> .Success(true)); } } return(BaseResponse <bool> .NoContent(false)); } } catch (Exception ex) { return(BaseResponse <bool> .InternalServerError(message : ex.Message, fullMsg : ex.StackTrace)); } }