コード例 #1
0
ファイル: SmileyRepository.cs プロジェクト: crazyants/forum
        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);
        }
コード例 #2
0
        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);
        }