public void UpdateORSElement(ObnovitZoznamORS request) { foreach (var id in request.IDs) { var oet = GetById <OrsElementType>(id); string SQLSelectValues = $"{oet.DbIdField} AS IdValue, {oet.DbListField} AS ListValue"; if (!string.IsNullOrEmpty(oet.DbDeletedField)) { SQLSelectValues += $", {oet.DbDeletedField} AS DeletedDate"; } var Elements = Db.Select <OrsElementDto>($"SELECT {SQLSelectValues} FROM {oet.DbSchema}.{oet.DbView}"); Elements.ForEach(e => e.C_OrsElementType_Id = oet.C_OrsElementType_Id); //vyber z DB zoznam IDValue pre pozadovany OrsElementType var DBElements = GetList <OrsElement>(e => e.C_OrsElementType_Id == oet.C_OrsElementType_Id); // nastav Deleted na neexistujuce (odstranene) foreach (var element in DBElements.Where(e => !Elements.Select(el => el.IdValue).Contains(e.IdValue))) { Update <OrsElement>(new UpdateOrsElement() { C_OrsElement_Id = element.C_OrsElement_Id, C_OrsElementType_Id = element.C_OrsElementType_Id, IdValue = element.IdValue, ListValue = element.ListValue, Poznamka = element.Poznamka, Deleted = true }); } // Update existujucich foreach (var element in DBElements.Where(e => Elements.Select(el => el.IdValue).Contains(e.IdValue))) { var tEl = Elements.Where(e => e.IdValue == element.IdValue).First(); var uEl = new UpdateOrsElement() { C_OrsElement_Id = element.C_OrsElement_Id, C_OrsElementType_Id = element.C_OrsElementType_Id, IdValue = element.IdValue, ListValue = tEl.ListValue, Poznamka = element.Poznamka, DeletedDate = tEl.DeletedDate, Deleted = (tEl.DeletedDate == null) ? false : element.Deleted }; Update <OrsElement>(uEl); } // pridaj nove foreach (var element in Elements.Where(e => !DBElements.Select(el => el.IdValue).Contains(e.IdValue))) { Create <OrsElement>(element); } } }
public void Any(ObnovitZoznamORS request) { //Repository.Update<OrsElementTypeView>(request); Repository.UpdateORSElement(request); }