public DP_DataRepository SearchDataForEditFromExternalSource(int entityID, DP_BaseData searchViewData, I_EditEntityArea editEntityArea)
        {
            DP_SearchRepository searchDataItem = new DP_SearchRepository(entityID);

            foreach (var col in searchViewData.KeyProperties)
            {
                searchDataItem.Phrases.Add(new SearchProperty()
                {
                    ColumnID = col.ColumnID, Value = col.Value
                });
            }
            var requester = AgentUICoreMediator.GetAgentUICoreMediator.GetRequester();

            //   var requestSearchEdit = new DR_SearchEditRequest(requester, searchDataItem, editEntityArea.AreaInitializer.SecurityReadOnly, true);
            var requestSearchEdit = new DR_SearchEditRequest(requester, searchDataItem);
            var foundItem         = AgentUICoreMediator.GetAgentUICoreMediator.requestRegistration.SendSearchEditRequest(requestSearchEdit).ResultDataItems;

            if (foundItem.Any())
            {
                foundItem[0].DataView = GetDataView(foundItem[0]);
                return(foundItem[0]);
            }
            else
            {
                return(null);
            }
        }
Exemple #2
0
        private void SetReport(DP_SearchRepository searchRepository)
        {
            SearchRepository = searchRepository;


            if (searchRepository != null)
            {
                //کلید رو میفرسته به عنوان پارامتر گزارش. این کلید در دیتابیس به نام MyExternalReport ذخیره میشود که کوئری را نگه میدارد
                //بعد در ریپورت که پارامتر کلید را دارد این کلید را به یک استورد پروسیجر میتوان فرستاد.این استورد پروسیجر برای هر گزارش باید نوسته شود زیرا باید فیلدهای مخصوصی آن گزارش
                //را برگرداند اما داخل آن از یک استورد پروسیجر دیگر استفاده میشود که عمومی است و کلیدهای اصلی آن کوئری مرتبط با کلید پارامتر ارسال شده را در یک جدول تمپ ذخیره میکند

                //داستان عوض شد.همین برنامه کلیدها رو در پایگاه داده هدف در یک جدول که با حروف
                //xr_
                //شروع میشه اینزرت میکنه.رو دیتای سنگین تست شود که روش خوبی هست یا نه
                var reportKey = AgentUICoreMediator.GetAgentUICoreMediator.ReportManager.GetExternalReportKey(AgentUICoreMediator.GetAgentUICoreMediator.GetRequester(),
                                                                                                              AreaInitializer.ReportID, AreaInitializer.EntityID, searchRepository);
                EntityExternalReportDTO report = AgentUICoreMediator.GetAgentUICoreMediator.ReportManager.GetExternalReport(AreaInitializer.ReportID);

                var url = report.URL;
                if (url.Contains("?"))
                {
                    url += "&ReportKey=" + reportKey;
                }
                else
                {
                    url += "?ReportKey=" + reportKey;
                }

                System.Diagnostics.Process.Start(url);

                //(View as I_View_ExternalReportArea).SetReportSource(url);
            }
            //var rpSource = reportResolver.GetReportSource(request);
            //View.SetReportSource(rpSource);
        }
        //public List<DP_DataRepository> SearchDataForEditFromExternalSource(int entityID, List<DP_DataRepository> searchViewData, I_EditEntityArea editEntityArea)
        //{

        //    DP_SearchRepository SearchDataItem = new DP_SearchRepository(entityID);
        //    List<DP_DataRepository> result = new List<DP_DataRepository>();
        //    foreach (var item in searchViewData)
        //    {
        //        foreach (var col in item.KeyProperties)
        //        {
        //            SearchDataItem.Phrases.Add(new SearchProperty() { ColumnID = col.ColumnID, Value = col.Value });
        //        }

        //        var requester = AgentUICoreMediator.GetAgentUICoreMediator.GetRequester();
        //        var requestSearchEdit = new DR_SearchEditRequest(requester, SearchDataItem);
        //        var froundItem = AgentUICoreMediator.GetAgentUICoreMediator.SendSearchEditRequest(requestSearchEdit).ResultDataItems;
        //        if (froundItem.Any())
        //            result.Add(froundItem[0]);
        //        else
        //        {
        //            AgentUICoreMediator.GetAgentUICoreMediator.UIManager.ShowInfo("عدم دسترسی به داده", item.ProperyValues, Temp.InfoColor.Red);
        //        }
        //    }
        //    return result;
        //}
        public DP_DataView SearchDataForViewFromExternalSource(int entityID, DP_BaseData searchViewData, I_EditEntityArea editEntityArea)
        {
            DP_SearchRepository SearchDataItem = new DP_SearchRepository(entityID);

            foreach (var col in searchViewData.KeyProperties)
            {
                SearchDataItem.Phrases.Add(new SearchProperty()
                {
                    ColumnID = col.ColumnID, Value = col.Value
                });
            }
            var requester = AgentUICoreMediator.GetAgentUICoreMediator.GetRequester();

            var requestSearchView = new DR_SearchViewRequest(requester, SearchDataItem);
            var foundItem         = AgentUICoreMediator.GetAgentUICoreMediator.requestRegistration.SendSearchViewRequest(requestSearchView).ResultDataItems;

            if (foundItem.Any())
            {
                return(foundItem[0]);
            }
            else
            {
                return(null);
            }
        }
Exemple #4
0
        private void CommandManager_Clicked(object sender, EventArgs e)
        {
            if (EditArea.SearchViewEntityArea != null)
            {
                var searchDP = EditArea.SearchViewEntityArea.SearchEntityArea.LastSearch;
                if (searchDP != null)
                {
                    //if (EditArea.DataViewArea == null)
                    //{
                    DP_SearchRepository searchRepository = new DP_SearchRepository(EditArea.AreaInitializer.EntityID);
                    searchRepository.Phrases             = searchDP.Phrases;
                    searchRepository.AndOrType           = searchDP.AndOrType;
                    EditArea.DataListReportAreaContainer = new DataListReportAreaContainer();
                    var initializer = new DataListReportAreaContainerInitializer();
                    initializer.EntitiyID        = EditArea.AreaInitializer.EntityID;
                    initializer.Title            = EditArea.SimpleEntity.Alias;
                    initializer.SearchRepository = searchRepository;
                    EditArea.DataListReportAreaContainer.SetAreaInitializer(initializer);
                    //}
                    //else
                    //{

                    //}

                    AgentUICoreMediator.GetAgentUICoreMediator.UIManager.GetDialogWindow().ShowDialog(EditArea.DataListReportAreaContainer.View, EditArea.SimpleEntity.Alias, Enum_WindowSize.Maximized);
                }
            }
        }
Exemple #5
0
        private CustomObject GetMainFormulaObject(DP_DataRepository mainDataItem)
        {
            CustomObject formulaObject = new CustomObject();

            if (!mainDataItem.IsNewItem && MyDataHelper.DataItemPrimaryKeysHaveValue(mainDataItem) && !MyDataHelper.DataItemNonPrimaryKeysHaveValues(mainDataItem))
            {
                SearchRequestManager searchProcessor = new SearchRequestManager();
                DP_SearchRepository  searchDataItem  = new DP_SearchRepository(mainDataItem.TargetEntityID);
                foreach (var property in mainDataItem.GetProperties())
                {
                    searchDataItem.Phrases.Add(new SearchProperty()
                    {
                        ColumnID = property.ColumnID, Value = property.Value
                    });
                }

                //سکوریتی داده اعمال میشود
                //یعنی ممکن است به خود داده دسترسی نداشته باشد و یا حتی به بعضی از فیلدها و روابط
                DR_SearchFullDataRequest request = new DR_SearchFullDataRequest(Requester, searchDataItem);
                var result = searchProcessor.Process(request);
                if (result.Result == Enum_DR_ResultType.SeccessfullyDone)
                {
                    formulaObject.DataItem = result.ResultDataItems.FirstOrDefault(); // searchProcessor.GetDataItemsByListOFSearchProperties(Requester, searchDataItem).FirstOrDefault();
                }
                else if (result.Result == Enum_DR_ResultType.ExceptionThrown)
                {
                    throw (new Exception(result.Message));
                }
            }
            else
            {
                formulaObject.DataItem = mainDataItem;
            }
            return(formulaObject);
        }
        public DP_SearchRepository ToSearchRepositoryDTO(SearchRepository SearchRepository)
        {
            DP_SearchRepository searchRepository = null;

            if (SearchRepository.SourceRelationID == null)
            {
                searchRepository       = new DP_SearchRepository(SearchRepository.TableDrivedEntityID);
                searchRepository.Title = SearchRepository.TableDrivedEntity.Alias;
            }
            else
            {
                var relDTO = new BizRelationship().ToRelationshipDTO(SearchRepository.Relationship);
                searchRepository       = new DP_SearchRepository(relDTO.EntityID2);
                searchRepository.Title = relDTO.Name;
                searchRepository.HasNotRelationshipCheck = SearchRepository.HasNotRelationshipCheck;
                searchRepository.RelationshipFromCount   = SearchRepository.RelationshipFromCount;
                searchRepository.RelationshipToCount     = SearchRepository.RelationshipToCount;
                //searchRepository.SourceEntityID = relDTO.EntityID1;
                searchRepository.SourceRelationship = relDTO;
            }
            searchRepository.ID             = SearchRepository.ID;
            searchRepository.Title          = SearchRepository.Title;
            searchRepository.EntitySearchID = SearchRepository.EntitySearchID ?? 0;
            searchRepository.IsSimpleSearch = SearchRepository.IsSimpleSearch;

            SetLogicPhraseDTO(SearchRepository.LogicPhrase, searchRepository);

            return(searchRepository);
        }
Exemple #7
0
        public void SearchInitialy()
        {
            DP_SearchRepository searchItems = new DP_SearchRepository(AreaInitializer.EntityID);

            SearchInitialyDone = true;
            SearchConfirmed(searchItems, false);
        }
        //public List<DP_DataView> SearchDataForViewFromExternalSource(int entityID, List<DP_DataRepository> searchViewData, I_EditEntityArea editEntityArea)
        //{
        //    //اوکی نشده
        //    DP_SearchRepository SearchDataItem = new DP_SearchRepository(entityID);
        //    List<DP_DataView> result = new List<DP_DataView>();
        //    foreach (var item in searchViewData)
        //    {
        //        foreach (var col in item.KeyProperties)
        //        {
        //            SearchDataItem.Phrases.Add(new SearchProperty() { ColumnID = col.ColumnID, Value = col.Value });
        //        }

        //        var requester = AgentUICoreMediator.GetAgentUICoreMediator.GetRequester();
        //        var requestSearchView = new DR_SearchViewRequest(requester, SearchDataItem);
        //        var foundItem = AgentUICoreMediator.GetAgentUICoreMediator.SendSearchViewRequest(requestSearchView).ResultDataItems;
        //        if (foundItem.Any())
        //            result.Add(foundItem[0]);
        //        else
        //            AgentUICoreMediator.GetAgentUICoreMediator.UIManager.ShowInfo("عدم دسترسی به داده", item.ProperyValues, Temp.InfoColor.Red);

        //    }
        //    return result;
        //}
        public DP_DataRepository GetFullDataFromDataViewSearch(int entityID, DP_DataView searchViewData, I_EditEntityArea editEntityArea)
        {
            //سکوریتی داده اعمال میشود
            DP_SearchRepository SearchDataItem = new DP_SearchRepository(entityID);

            foreach (var col in searchViewData.Properties.Where(x => x.IsKey))
            {
                SearchDataItem.Phrases.Add(new SearchProperty()
                {
                    ColumnID = col.ColumnID, Value = col.Value
                });
            }
            var requester = AgentUICoreMediator.GetAgentUICoreMediator.GetRequester();
            // var requestSearchEdit = new DR_SearchEditRequest(requester, SearchDataItem, editEntityArea.AreaInitializer.SecurityReadOnly, false);
            var requestSearchEdit = new DR_SearchEditRequest(requester, SearchDataItem);
            var res = AgentUICoreMediator.GetAgentUICoreMediator.requestRegistration.SendSearchEditRequest(requestSearchEdit).ResultDataItems;

            if (res.Any())
            {
                var froundItem = res[0];
                froundItem.DataView = searchViewData;
                return(froundItem);
            }

            else
            {
                return(null);
            }
        }
        public DP_DataView GetDataView(DP_DataRepository data)
        {
            //بعدا بررسی شود.کلا روش خوبی نیست.بهتره تو همون سرچ ادیت یه پارامتری سرچ بشه و دیتاویو ساخته بشه
            var requester = AgentUICoreMediator.GetAgentUICoreMediator.GetRequester();

            DP_SearchRepository searchDataViewItem = new DP_SearchRepository(data.TargetEntityID);

            foreach (var col in data.KeyProperties)
            {
                searchDataViewItem.Phrases.Add(new SearchProperty()
                {
                    ColumnID = col.ColumnID, Value = col.Value
                });
            }
            DR_SearchViewRequest requestDataView = new DR_SearchViewRequest(requester, searchDataViewItem);
            //requestDataView.EntityViewID = listViewID;
            var childViewData = AgentUICoreMediator.GetAgentUICoreMediator.requestRegistration.SendSearchViewRequest(requestDataView).ResultDataItems;

            if (childViewData.Any())
            {
                return(childViewData[0]);
            }
            else
            {
                return(null);
            }
        }
Exemple #10
0
        private void AddDataListReportArea(int entityID, string title, DP_SearchRepository searchRepository, bool initialSearchShouldBeIncluded, RelationshipDTO causingRelationship = null, EntityRelationshipTailDTO causingRelationshipTail = null)
        {
            var dataListReportArea = new DataListReportArea();

            dataListReportArea.InitialSearchShouldBeIncluded   = initialSearchShouldBeIncluded;
            dataListReportArea.RelatedDataReportArearequested += FirstDataListReportArea_RelatedDataListReportArearequested;
            dataListReportArea.DataItemsSearchedByUser        += DataListReportArea_DataItemsSearchedByUser;
            var firstInit = new DataListReportAreaInitializer();

            firstInit.SearchRepository        = searchRepository;
            firstInit.EntitiyID               = entityID;
            firstInit.Title                   = title;
            firstInit.CausingRelationship     = causingRelationship;
            firstInit.CausingRelationshipTail = causingRelationshipTail;
            dataListReportArea.SetAreaInitializer(firstInit);
            View.AddDataListReportArea(dataListReportArea.View);

            if (CurrentDataListReportArea == null)
            {
                CurrentDataListReportArea = dataListReportArea;
                DataListReportAreas.Add(dataListReportArea);
            }
            else
            {
                var currentIndex = DataListReportAreas.IndexOf(CurrentDataListReportArea);
                DataListReportAreas.Insert(currentIndex + 1, dataListReportArea);
                CurrentDataListReportArea = dataListReportArea;
            }
            SetLinks();
        }
 private void RemoveUnWantedTypes(DP_SearchRepository searchRepository)
 {
     if (searchRepository.SourceRelationship != null)
     {
         foreach (var column in searchRepository.SourceRelationship.RelationshipColumns)
         {
             if (column.FirstSideColumn != null)
             {
                 column.FirstSideColumn.DotNetType = null;
             }
             if (column.SecondSideColumn != null)
             {
                 column.SecondSideColumn.DotNetType = null;
             }
         }
     }
     foreach (var item in searchRepository.Phrases)
     {
         if (item is DP_SearchRepository)
         {
             RemoveUnWantedTypes(item as DP_SearchRepository);
         }
         else if (item is LogicPhraseDTO)
         {
             foreach (var log in (item as LogicPhraseDTO).Phrases)
             {
                 if (log is DP_SearchRepository)
                 {
                     RemoveUnWantedTypes(log as DP_SearchRepository);
                 }
             }
         }
     }
 }
        public bool ConvertDataViewToFullData(int entityID, DP_DataRepository dataITem, I_EditEntityArea editEntityArea)
        {
            //اوکی نشده
            DP_SearchRepository SearchDataItem = new DP_SearchRepository(entityID);

            foreach (var col in dataITem.KeyProperties)
            {
                SearchDataItem.Phrases.Add(new SearchProperty()
                {
                    ColumnID = col.ColumnID, Value = col.Value
                });
            }
            var requester = AgentUICoreMediator.GetAgentUICoreMediator.GetRequester();

            // var requestSearchEdit = new DR_SearchEditRequest(requester, SearchDataItem, editEntityArea.AreaInitializer.SecurityReadOnly, false);
            var requestSearchEdit = new DR_SearchEditRequest(requester, SearchDataItem);
            var foundItem         = AgentUICoreMediator.GetAgentUICoreMediator.requestRegistration.SendSearchEditRequest(requestSearchEdit).ResultDataItems;

            if (foundItem.Any())
            {
                dataITem.ClearProperties();
                dataITem.SetProperties(foundItem[0].GetProperties());
                dataITem.IsFullData = true;

                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemple #13
0
        public DP_DataView GetDataView(DP_BaseData data)
        {
            var newrequester = new DR_Requester();

            newrequester.SkipSecurity = true;
            DP_SearchRepository searchDataViewItem = new DP_SearchRepository(data.TargetEntityID);

            foreach (var col in data.KeyProperties)
            {
                searchDataViewItem.Phrases.Add(new SearchProperty()
                {
                    ColumnID = col.ColumnID, Value = col.Value
                });
            }
            DR_SearchViewRequest searchViewRequest = new DR_SearchViewRequest(newrequester, searchDataViewItem);
            var searchViewResult = SearchRequestManager.Process(searchViewRequest);

            if (searchViewResult.ResultDataItems.Any())
            {
                return(searchViewResult.ResultDataItems[0]);
            }
            else
            {
                return(null);
            }
        }
        public void ShowSearchRepository(DP_SearchRepository searchRepository)
        {
            if (searchRepository == null)
            {
                return;
            }
            bool showInSimple = false;

            if (searchRepository.IsSimpleSearch == true)
            {
                showInSimple = SimpleSearchEntityArea.ShowSearchRepository(searchRepository);
                if (showInSimple)
                {
                    SearchView.IsSimpleSearchActiveOrAdvancedSearch = true;
                }
            }
            if (!showInSimple)
            {
                if (!AdvancedSearchEntityAre.ShowSearchRepository(searchRepository))
                {
                    throw (new Exception("AsdasdasD"));
                }
                else
                {
                    SearchView.IsSimpleSearchActiveOrAdvancedSearch = false;
                }
            }
        }
Exemple #15
0
        // SecurityHelper securityHelper = new SecurityHelper();
        //public EntityRelationshipTailDTO GetRelationshipTail(int id)
        //{
        //    return bizRelationshipTail.GetEntityRelationshipTail(id);
        //}
        //مهم اینه که داده مبدا از ویو نباشد
        public DP_SearchRepository GetTargetSearchItemFromRelationshipTail(DP_BaseData firstDataItem, EntityRelationshipTailDTO relationshipTail)
        {
            DP_SearchRepository searchItem = null;
            var linkedRelationshipTails    = GetLinkedRelationshipTails(relationshipTail.ReverseRelationshipTail);

            searchItem = GetSourceSideSearchItemFromRelationshipTail(linkedRelationshipTails.First, true, firstDataItem);
            return(searchItem);
        }
Exemple #16
0
 private Task <DR_ResultSearchView> SearchAsync(DP_SearchRepository searchItems)
 {
     return(Task.Run(() =>
     {
         var result = GetSearchResult(searchItems);
         return result;
     }));
 }
Exemple #17
0
        public void AddDataViewAreaFromOutSide(int entityID, string title, DP_SearchRepository searchRepository, I_DataViewItem causingDataViewItem, bool dataViewOrGridView, int dataMenuSettingID)
        {
            if (CurrentDataViewArea != null && CurrentDataViewArea is I_DataViewArea)
            {
                (CurrentDataViewArea as I_DataViewArea).DefaultDataViewItem = causingDataViewItem;
            }

            AddDataViewArea(entityID, title, searchRepository, dataMenuSettingID, dataViewOrGridView);
        }
 public bool ShowSearchRepository(DP_SearchRepository item)
 {
     if (RootNode != null)
     {
         RootNode = null;
         AdvancedSearchView.ClearTreeItems();
     }
     AddLogicNode(null, item);
     return(true);
 }
 public void OnSearchDataDefined(DP_SearchRepository searchData)
 {
     if (SearchDataDefined != null)
     {
         SearchDataDefined(this, new SearchDataArg()
         {
             SearchItems = searchData
         });
     }
 }
        private void GetDataItemsBySearchRepository(DP_SearchRepository searchRepository)
        {
            if (searchRepository != null)
            {
                SearchRepository = searchRepository;
                if (InitialSearchShouldBeIncluded)
                {
                    if (InitialSearchRepository != null)
                    {
                        if (InitialSearchRepository != SearchRepository)
                        {
                            SearchRepository.Phrases.Add(InitialSearchRepository);
                        }
                    }
                }
                var requester = AgentUICoreMediator.GetAgentUICoreMediator.GetRequester();
                //سکوریتی داده اعمال میشود
                var countRequest = new DR_SearchCountRequest(requester);
                countRequest.EntityID        = AreaInitializer.EntitiyID;
                countRequest.SearchDataItems = SearchRepository;
                var countResult = AgentUICoreMediator.GetAgentUICoreMediator.requestRegistration.SendSearchCountRequest(countRequest);
                View.SetItemsTotalCount(countResult.ResultCount);

                //سکوریتی داده اعمال میشود
                var searchRequest = new DR_SearchViewRequest(requester, SearchRepository);
                searchRequest.MaxDataItems = MaxDataItems;
                searchRequest.OrderByEntityViewColumnID = View.GetOrderColumnID;
                if (View.GetSortText == "Ascending")
                {
                    searchRequest.SortType = Enum_OrderBy.Ascending;
                }
                else if (View.GetSortText == "Descending")
                {
                    searchRequest.SortType = Enum_OrderBy.Descending;
                }

                //searchRequest.EntityID = AreaInitializer.EntitiyID;
                searchRequest.EntityViewID = View.GetEntityListViewID();
                var result = AgentUICoreMediator.GetAgentUICoreMediator.requestRegistration.SendSearchViewRequest(searchRequest);
                //List<I_DataReportItem> list = new List<I_DataReportItem>();
                //foreach (var item in result.ResultDataItems)
                //{
                //    list.Add(GetDataReportItem(item));
                //}
                string tooltip = "";
                if (result.ResultDataItems.Count == MaxDataItems && MaxDataItems != 0)
                {
                    tooltip = "توجه شود که تنها " + MaxDataItems + " " + "مورد اول نمایش داده می شوند";
                }
                View.SetDataItemsCount(result.ResultDataItems.Count, tooltip);
                //درست شود
                //////View.AddDataReportItems(AgentHelper.GetDataObjects(result.ResultDataItems));
            }
        }
Exemple #21
0
        //public void SearchAsComboBox()
        //{
        //    CalculateFilterValues();
        //    bool filtersChanged = false;
        //    if (CurrentValues.Any(x => !LastFilterValues.Any(y => x.Item1 == y.Item1 && x.Item2 == y.Item2)) ||
        //     LastFilterValues.Any(x => !CurrentValues.Any(y => x.Item1 == y.Item1 && x.Item2 == y.Item2)))
        //        filtersChanged = true;
        //    //بعدا که حالت کمبو هم اضافه شد اینها اعمال شوند
        //    //if (filtersChanged)
        //    //{
        //    //    searchInitialyDone = false;
        //    //    ViewEntityArea.AddData(new List<DP_DataView>(), true);
        //    //}

        //    //searchInitialyDone = true;
        //    DP_SearchRepository searchItems = new DP_SearchRepository(AreaInitializer.EntityID);
        //    searchInitialyDone = true;
        //    SearchConfirmed(searchItems, true, false);

        //}

        public async void SearchTextBox(string text)
        {
            SearchInitialyDone = true;
            DP_SearchRepository searchItems = new DP_SearchRepository(AreaInitializer.EntityID);
            var logicPhrase = SearchEntityArea.SimpleSearchEntityArea.GetQuickSearchLogicPhrase(text, SearchEntityArea.SimpleSearchEntityArea.EntitySearch);

            searchItems.Phrases.Add(logicPhrase);
            var result = await SearchAsync(searchItems);

            UseSearchResult(result, false);
        }
        private void ManageAdvancedSearchView()
        {
            var searchRepository = new DP_SearchRepository(SearchInitializer.EntityID);

            searchRepository.Title = FullEntity.Alias;
            AddLogicNode(null, searchRepository);
            //}
            //else
            //{
            //    AddLogicPhrase(null, SearchInitializer.EditSearchRepository);
            //}
        }
        private void SetReport(DP_SearchRepository searchRepository)
        {
            SearchRepository = searchRepository;

            //بالاخره درست شد. بعد از مدتها که اومدم سراغ گزارشات خطا میداد
            // پروژه رست سرویس از اول ایجاد شد. از تمپلیت خود تلریک استفاده شد تو اد نیو پروژکت .فقط ریزولور رو اصلاح کردم و تو وب کانفیک کانکشن استرینگ رو ست کردم
            //برای ویوئر هم مجددا با رایت کلیک و اد کردن یک ریپورت ویوئر wpf
            //خودش یسری dll اشافه میکنه و همچنین app.config رو دستکاری میکنه
            //یه مشکل با ورژن Newtonsoft.Json بود که با اصلاح خط زیر حل شد
            //        < dependentAssembly >
            //          < assemblyIdentity name = "Newtonsoft.Json" publicKeyToken = "30ad4fe6b2a6aeed" culture = "neutral" />
            //          < bindingRedirect oldVersion = "0.0.0.0-9.0.0.0" newVersion = "9.0.0.0" />
            //      </ dependentAssembly >

            //به نظرم ریپورت اریا اینترنال و اکسترنال رو جدا کنم
            if (searchRepository != null)
            {
                var request = new RR_ReportSourceRequest(AgentUICoreMediator.GetAgentUICoreMediator.GetRequester());
                request.ReportID        = AreaInitializer.ReportID;
                request.SearchDataItems = searchRepository;
                if (View.OrderColumnsVisibility)
                {
                    request.OrderByEntityViewColumnID = View.GetOrderColumnID;
                    if (View.GetSortText == "Ascending")
                    {
                        request.SortType = Enum_OrderBy.Ascending;
                    }
                    else if (View.GetSortText == "Descending")
                    {
                        request.SortType = Enum_OrderBy.Descending;
                    }
                }
                var         reportEngineConnection = "engine=RestService;uri=http://localhost/MyReportRestServices/api/reports;useDefaultCredentials=True";
                List <Type> types = new List <Type>();
                types.Add(typeof(DP_SearchRepository));
                //types.Add(typeof(LogicPhrase));
                types.Add(typeof(SearchProperty));
                RemoveUnWantedTypes(request.SearchDataItems);
                var uri = SerializeObject <RR_ReportSourceRequest>(request, types);
                //   uri = "MyReportRestServices.Report1, MyReportRestServices, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null";
                var rpSource = new UriReportSource()
                {
                    Uri = uri
                };
                //rpSource.Parameters.Add(new Parameter() { Name = "bb", Value = request });
                View.SetReportSource(null, null);
                View.SetReportSource(reportEngineConnection, rpSource);
            }
            //var rpSource = reportResolver.GetReportSource(request);
            //View.SetReportSource(rpSource);
        }
Exemple #24
0
        private DP_SearchRepository GetSearchRepository()
        {
            DP_SearchRepository result = new DP_SearchRepository(SearchInitializer.EntityID);

            if (SearchInitializer.SourceRelationID != 0)
            {
                result.SourceRelationID = SearchInitializer.SourceRelationID;
                result.SourceToTargetMasterRelationshipType = SearchInitializer.SourceToTargetMasterRelationshipType;
                result.SourceToTargetRelationshipType       = SearchInitializer.SourceToTargetRelationshipType;
                //result.TargetEntityID = SearchInitializer.TargetEntityID;
            }
            result.Name = SearchInitializer.Title;
            return(result);
        }
Exemple #25
0
        private DR_ResultSearchView GetSearchResult(DP_SearchRepository searchItems)
        {
            CalculateFilterValues();
            if (FilterCalculationError != null)
            {
                AgentUICoreMediator.GetAgentUICoreMediator.UIManager.ShowInfo("خطا در جستجو", FilterCalculationError.Message, Temp.InfoColor.Red);
                return(null);
            }
            LastFilterValues.Clear();
            foreach (var item in CurrentValues)
            {
                LastFilterValues.Add(new Tuple <int, object>(item.Item1, item.Item2));
            }

            if (RelationshipFilters != null)
            {
                foreach (var filter in RelationshipFilters)
                {
                    var valueRow = CurrentValues.FirstOrDefault(x => x.Item1 == filter.ID);
                    // var value = AgentHelper.GetValueSomeHow(AreaInitializer.SourceEditArea.ChildRelationshipInfo.ParentData, filter.ValueRelationshipTail, filter.ValueColumnID);
                    if (valueRow == null)
                    {
                        return(null);
                    }
                    DP_SearchRepository searchItem = CreateSearchItem(searchItems, filter.SearchRelationshipTail);
                    //var searchColumn = searchItem.Phrases.FirstOrDefault(x => x is SearchProperty && (x as SearchProperty).ColumnID == filter.SearchColumnID) as SearchProperty;
                    //if (searchColumn == null)
                    //{
                    var searchColumn = new SearchProperty()
                    {
                        ColumnID = filter.SearchColumnID, NotIgnoreZeroValue = true
                    };
                    searchItem.Phrases.Add(searchColumn);
                    //}
                    searchColumn.Value = valueRow.Item2;
                }
            }

            var requester = AgentUICoreMediator.GetAgentUICoreMediator.GetRequester();
            //سکوریتی داده اعمال میشود
            DR_SearchViewRequest request = new DR_SearchViewRequest(requester, searchItems);

            //request.EntityID = AreaInitializer.EntityID;
            request.EntityViewID = ViewEntityArea.EntityListView.ID;
            var result = AgentUICoreMediator.GetAgentUICoreMediator.requestRegistration.SendSearchViewRequest(request);

            return(result);
        }
Exemple #26
0
        public void SearchConfirmed(DP_SearchRepository searchItems, bool select)
        {
            //try
            //{
            var result = GetSearchResult(searchItems);

            if (result != null)
            {
                UseSearchResult(result, select);
            }

            //}
            //catch (Exception ex)
            //{
            //    AgentUICoreMediator.GetAgentUICoreMediator.UIManager.ShowInfo("خطا در جستجو", ex.Message, Temp.InfoColor.Red);
            //}
        }
Exemple #27
0
        public void SelectFromParent(bool isCalledFromDataView, RelationshipDTO relationship, DP_DataRepository parentDataItem, Dictionary <int, string> colAndValues)
        {
            IsCalledFromDataView = isCalledFromDataView;
            DP_SearchRepository searchItems = new DP_SearchRepository(AreaInitializer.EntityID);

            foreach (var item in relationship.RelationshipColumns)
            {
                if (colAndValues.ContainsKey(item.FirstSideColumnID))
                {
                    searchItems.Phrases.Add(new SearchProperty()
                    {
                        ColumnID = item.SecondSideColumnID, Value = colAndValues[item.FirstSideColumnID]
                    });
                }
            }
            SearchConfirmed(searchItems, true);
        }
        public void ShowTemporarySearchView()
        {
            CalculateFilterValues();
            bool filtersChanged = false;

            if (CurrentValues.Any(x => !LastFilterValues.Any(y => x.Item1 == y.Item1 && x.Item2 == y.Item2)) ||
                LastFilterValues.Any(x => !CurrentValues.Any(y => x.Item1 == y.Item1 && x.Item2 == y.Item2)))
            {
                filtersChanged = true;
            }
            //بعدا که حالت کمبو هم اضافه شد اینها اعمال شوند
            if (filtersChanged)
            {
                searchInitialyDone = false;
                ViewEntityArea.AddData(new List <DP_DataView>(), true);
            }
            bool?sarchInitially = null;

            if (AreaInitializer.SourceEditArea.AreaInitializer.SourceRelation != null)
            {
                sarchInitially = AreaInitializer.SourceEditArea.AreaInitializer.SourceRelation.Relationship.SearchInitially;
            }
            if (sarchInitially == null)
            {
                sarchInitially = AreaInitializer.SourceEditArea.SimpleEntity.SearchInitially;
            }

            //if (searchInitialyDone)
            //    sarchInitially = false;
            //if (sarchInitially == true)
            //{
            //    if (RelationshipFilters == null || RelationshipFilters.Count == 0)
            //    {
            //        if (searchInitialyDone)
            //            sarchInitially = false;
            //    }
            //}

            if (sarchInitially == true && searchInitialyDone == false)
            {
                DP_SearchRepository searchItems = new DP_SearchRepository(AreaInitializer.EntityID);
                searchInitialyDone = true;
                SearchConfirmed(searchItems, true, false);
            }
            AgentUICoreMediator.GetAgentUICoreMediator.UIManager.ShowDialog(View, AreaInitializer.TempEntity.Alias, Enum_WindowSize.Big);
        }
 private DP_SearchRepository CreateSearchItem(DP_SearchRepository mainItem, EntityRelationshipTailDTO searchRelationshipTail)
 {
     if (searchRelationshipTail == null)
     {
         return(mainItem);
     }
     else
     {
         var foundItem = new DP_SearchRepository(searchRelationshipTail.Relationship.EntityID2);
         foundItem.SourceRelationship = searchRelationshipTail.Relationship;
         //foundItem.SourceEntityID = searchRelationshipTail.Relationship.EntityID1;
         //foundItem.SourceToTargetRelationshipType = searchRelationshipTail.Relationship.TypeEnum;
         //foundItem.SourceToTargetMasterRelationshipType = searchRelationshipTail.Relationship.MastertTypeEnum;
         mainItem.Phrases.Add(foundItem);
         return(CreateSearchItem(foundItem, searchRelationshipTail.ChildTail));
     }
 }
Exemple #30
0
        private static DP_DataRepository GetMainDateItem(DR_Requester requester, DP_BaseData dataItem)
        {
            bool getDataItem = false;

            if (dataItem is DP_DataView)
            {
                getDataItem = true;
            }
            else
            {
                if (!(dataItem as DP_DataRepository).IsNewItem && MyDataHelper.DataItemPrimaryKeysHaveValue((dataItem as DP_DataRepository)) && !MyDataHelper.DataItemNonPrimaryKeysHaveValues((dataItem as DP_DataRepository)))
                {
                    getDataItem = true;
                }
            }

            if (getDataItem)
            {
                SearchRequestManager searchProcessor = new SearchRequestManager();
                DP_SearchRepository  searchDataItem  = new DP_SearchRepository(dataItem.TargetEntityID);
                foreach (var property in dataItem.KeyProperties)
                {
                    searchDataItem.Phrases.Add(new SearchProperty()
                    {
                        ColumnID = property.ColumnID, Value = property.Value
                    });
                }

                //سکوریتی داده اعمال میشود
                //یعنی ممکن است به خود داده دسترسی نداشته باشد و یا حتی به بعضی از فیلدها و روابط
                DR_SearchFullDataRequest request = new DR_SearchFullDataRequest(requester, searchDataItem);
                var result = searchProcessor.Process(request);
                if (result.Result != Enum_DR_ResultType.ExceptionThrown)
                {
                    return(result.ResultDataItems.FirstOrDefault()); // searchProcessor.GetDataItemsByListOFSearchProperties(Requester, searchDataItem).FirstOrDefault();
                }
                else
                {
                    throw (new Exception(result.Message));
                }
            }
            else
            {
                return(dataItem as DP_DataRepository);
            }
        }