private void UpdateParameters(Guid contentId, IList <Parameter> parameters, IUnitOfWork uow) { IParameterRepository paramRepo = IoC.Container.Resolve <IParameterRepository>(uow); IList <Parameter> currentParams = paramRepo.GetByParentId(contentId, ParameterParentType.ContentType); foreach (Parameter param in currentParams) { if (parameters.Any(item => item.Id == param.Id)) { continue; } paramRepo.Delete(param.Id.ToString()); } foreach (Parameter param in currentParams) { if (!parameters.Any(item => item.Id == param.Id)) { continue; } Parameter modifiedParam = parameters.FirstOrDefault(item => item.Id == param.Id); param.UpdateFrom(modifiedParam); paramRepo.Update(param); } foreach (Parameter param in parameters) { if (currentParams.Any(item => item.Id == param.Id)) { continue; } //if (param.Id != null && param.Id != Guid.Empty) { continue; } Parameter newParam = new Parameter(); newParam.CreateFrom(param); newParam.ParentType = ParameterParentType.ContentType; newParam.ParentId = contentId; paramRepo.Add(newParam); } }