public ServiceModels.ServiceResponse Update(InputModels.EditSmileysInput input) { var serviceResponse = new ServiceModels.ServiceResponse(); foreach (var smileyInput in input.Smileys) { var smileyRecord = DbContext.Smileys.Find(smileyInput.Id); if (smileyRecord is null) { serviceResponse.Error($@"No smiley was found with the id '{smileyInput.Id}'"); break; } if (smileyRecord.Code != smileyInput.Code) { smileyRecord.Code = smileyInput.Code; DbContext.Update(smileyRecord); } if (smileyRecord.Thought != smileyInput.Thought) { smileyRecord.Thought = smileyInput.Thought; DbContext.Update(smileyRecord); } } if (!serviceResponse.Success) { return(serviceResponse); } DbContext.SaveChanges(); serviceResponse.Message = $"The smiley was updated."; return(serviceResponse); }
public ServiceModels.ServiceResponse Update(InputModels.EditSmileysInput input) { var serviceResponse = new ServiceModels.ServiceResponse(); var smileySortOrder = new Dictionary <int, int>(); foreach (var smileyInput in input.Smileys) { var smileyRecord = DbContext.Smileys.Find(smileyInput.Id); if (smileyRecord is null) { serviceResponse.Error($@"No smiley was found with the id '{smileyInput.Id}'"); break; } smileySortOrder.Add(smileyRecord.Id, smileyRecord.SortOrder); } foreach (var smileyInput in input.Smileys) { var newSortOrder = (smileyInput.Column * 1000) + smileyInput.Row; if (smileySortOrder[smileyInput.Id] != newSortOrder) { foreach (var kvp in smileySortOrder.Where(kvp => smileyInput.Column == kvp.Value / 1000 && kvp.Value >= newSortOrder).ToList()) { smileySortOrder[kvp.Key]++; } smileySortOrder[smileyInput.Id] = newSortOrder; } } foreach (var smileyInput in input.Smileys) { var smileyRecord = DbContext.Smileys.Find(smileyInput.Id); if (smileyRecord.Code != smileyInput.Code) { smileyRecord.Code = smileyInput.Code; DbContext.Update(smileyRecord); } if (smileyRecord.Thought != smileyInput.Thought) { smileyRecord.Thought = smileyInput.Thought; DbContext.Update(smileyRecord); } if (smileyRecord.SortOrder != smileySortOrder[smileyRecord.Id]) { smileyRecord.SortOrder = smileySortOrder[smileyRecord.Id]; DbContext.Update(smileyRecord); } } if (!serviceResponse.Success) { return(serviceResponse); } DbContext.SaveChanges(); serviceResponse.Message = $"The smiley was updated."; return(serviceResponse); }