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);
                }
            }
        }
Exemplo n.º 2
0
 public void Any(ObnovitZoznamORS request)
 {
     //Repository.Update<OrsElementTypeView>(request);
     Repository.UpdateORSElement(request);
 }