Example #1
0
        public static ViewDTO GetViewCache(long viewCacheId, bool isSchedulerCall)
        {
            ViewDTO view;

            using (var avrTran = new AvrDbTransaction())
            {
                DbManagerProxy manager   = avrTran.Manager;
                DbManager      headerCmd = manager.SetSpCommand("spAsViewCacheGetHeader",
                                                                manager.Parameter("idfViewCache", viewCacheId),
                                                                manager.Parameter("blnSchedulerCall", isSchedulerCall));

                lock (m_DbSyncLock)
                {
                    int packetCount;
                    using (IDataReader reader = headerCmd.ExecuteReader())
                    {
                        if (!reader.Read())
                        {
                            return(null);
                        }

                        BaseTableDTO viewTableDTO = new BaseTableDTO
                        {
                            Header =
                            {
                                RowCount   = (int)reader["intViewColumnCount"],
                                BinaryBody = new ChunkByteArray((byte[])reader["blbViewSchema"])
                            }
                        };

                        var binaryHeader = (byte[])reader["blbViewHeader"];
                        view = new ViewDTO(viewTableDTO, binaryHeader);

                        packetCount = (int)reader["intPacketCount"];
                    }
                    for (int packetNumber = 0; packetNumber < packetCount; packetNumber++)
                    {
                        DbManager packetCmd = manager.SetSpCommand("spAsViewCacheGetPacket",
                                                                   manager.Parameter("idfViewCache", viewCacheId),
                                                                   manager.Parameter("intViewCachePacketNumber", packetNumber));

                        var packetDTO = new BaseTablePacketDTO();
                        using (IDataReader packetReader = packetCmd.ExecuteReader())
                        {
                            if (!packetReader.Read())
                            {
                                return(null);
                            }

                            packetDTO.RowCount   = (int)packetReader["intTableRowCount"];
                            packetDTO.BinaryBody = new ChunkByteArray((byte[])packetReader["blbViewCachePacket"]);
                        }
                        view.BodyPackets.Add(packetDTO);
                    }

                    avrTran.CommitTransaction();
                }
            }
            return(view);
        }
Example #2
0
        public void ViewFacedeSemaphoreTest()
        {
            int taskNumber = 0;
            var facade     = new AVRFacadeStub(123);

            const int taskCount = 10;
            Action    act       = () =>
            {
                var number = Interlocked.Increment(ref taskNumber);
                Console.WriteLine("->View task {0} started", number);
                ViewDTO model = facade.GetCachedView("xxx", -1, "en");
                Console.WriteLine("<-View task {0} finished", number);
            };

            Task[] tasks = new Task[taskCount];
            for (int i = 0; i < taskCount; i++)
            {
                tasks[i] = new Task(act);
            }
            foreach (var task in tasks)
            {
                task.Start();
            }
            Task.WaitAll(tasks);
        }
Example #3
0
        private void OnDeleteViewClicked(object sender, EventArgs args)
        {
            TreeIter iter;

            if (viewsTreeView.Selection.GetSelected(out iter))
            {
                string  viewName   = viewTableModel.ListStore.GetValue(iter, 0).ToString();
                ViewDTO auxViewDTO = null;
                foreach (ViewDTO viewDTO in viewTableModel.ListModel)
                {
                    if (viewDTO.ViewName.Equals(viewName))
                    {
                        auxViewDTO = viewDTO;
                        break;
                    }
                }
                //Siempre será != null
                if (auxViewDTO != null)
                {
                    viewTableModel.ListModel.Remove(auxViewDTO);
                    viewTableModel      = new ViewTableModel(viewTableModel.ListModel);
                    viewsTreeView.Model = viewTableModel.ListStore;
                }
            }
        }
Example #4
0
        public async Task <ViewDTO> UpdateAsync(ViewDTO view)
        {
            view.AccessKey = "----";
            var rawViewContent = JsonConvert.SerializeObject(view);
            var sqlParams      = new
            {
                Id         = view.Id.RawValue,
                CustomerId = view.CustomerId.RawValue,
                Content    = rawViewContent
            };
            string sql = @";
                UPDATE dbo.Views
                SET Content = @Content
                WHERE Id = @Id
                    AND CustomerId = @CustomerId;

                SELECT Id, 
                       CustomerId,
                       AccessKey,
                       Content
                FROM dbo.Views V
                WHERE V.Id = @Id
                    AND V.CustomerId = @CustomerId;
            ";

            return(await GetSingleOrDefaultAsync(sql, sqlParams));
        }
        public async Task <IActionResult> UpdateViewAsync([FromBody] ViewConfigurationModel view)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var customerId = _membership.GetCustomerId(User);
            var viewDTO    = new ViewDTO(
                view.Id,
                customerId,
                "----",
                new ViewCustomizationDTO(
                    view.Custom.Url,
                    view.Custom.Logo,
                    view.Custom.Title,
                    view.Custom.HeaderLinks.Select(hl => new ViewCustomizationHeaderLinkDTO(hl.Label, hl.Url))
                    .ToList(),
                    view.Custom.Copyright),
                view.Columns.Select(c => new ViewColumnDTO(
                                        c.Order,
                                        c.Label,
                                        c.Lines.Select(line => new ViewColumnLineDTO(line.Field))
                                        .ToList()
                                        )).ToList());

            viewDTO = await _persistence.Views.UpdateAsync(viewDTO);

            return(Ok(new ViewConfigurationModel(viewDTO)));
        }
Example #6
0
        public async Task <ViewDTO> CreateNewAsync(ViewDTO view)
        {
            var origAccessKey = view.AccessKey;

            view.AccessKey = "----";
            var rawViewContent = JsonConvert.SerializeObject(view);
            var sqlParams      = new
            {
                Id         = Guid.NewGuid(),
                CustomerId = view.CustomerId.RawValue,
                AccessKey  = origAccessKey,
                Content    = rawViewContent
            };
            string sql = @";
                INSERT INTO dbo.Views(Id, CustomerId, AccessKey, Content)
                VALUES(@Id, @CustomerId, @AccessKey, @Content);

                SELECT Id, 
                       CustomerId,
                       AccessKey,
                       Content
                FROM dbo.Views V
                WHERE V.Id = @Id
                    AND V.CustomerId = @CustomerId;
            ";

            return(await GetSingleOrDefaultAsync(sql, sqlParams));
        }
Example #7
0
        public ViewDTO GetCachedView(string sessionId, long layoutId, string lang)
        {
            try
            {
                m_ViewSemaphore.Wait();

                Console.WriteLine(" Waited {0} tics for the semaphore", (DateTime.Now.Ticks - m_Ticks) / 100000 * 100000);

                Thread.Sleep(100);
                byte[] viewBytes       = BinarySerializer.SerializeFromString(SerializedViewStub.ViewXml);
                byte[] viewZippedBytes = BinaryCompressor.Zip(viewBytes);

                DataTable sourceData = DataTableSerializer.Deserialize(SerializedViewStub.DataXml);

                BaseTableDTO serializedDTO = BinarySerializer.SerializeFromTable(sourceData);
                BaseTableDTO zippedDTO     = BinaryCompressor.Zip(serializedDTO);

                var result = new ViewDTO(zippedDTO, viewZippedBytes);

                return(result);
            }
            finally
            {
                m_ViewSemaphore.Release();
            }
        }
Example #8
0
        private Hashtable InitComponentTable(ComponentDTO componentDTO, Hashtable templateTable)
        {
            Hashtable componentTable = new Hashtable();

            //Key fileName without path, string value.
            componentTable.Add(componentDTO.ComponentName + "ComponentModel.cs", templateTable[TemplateNamesDTO.BusinessObject]);
            //Añadimos el gestor de exceptions
            componentTable.Add(componentDTO.ClassExceptionManager + ".cs", templateTable[TemplateNamesDTO.ExceptionManager]);
            //Añadimos el manifiesto.

            /**
             * StringBuilder manifestBuilder = new StringBuilder (TemplateNamesDTO.AssemblyInfo);
             * manifestBuilder = manifestBuilder.Replace ("template", "cs");
             * componentTable.Add (manifestBuilder.ToString (), templateTable[TemplateNamesDTO.AssemblyInfo]);
             */
            //Añaidmos las vistas
            IEnumerator enumerator = componentDTO.ViewCollection.GetEnumerator();

            while (enumerator.MoveNext())
            {
                ViewDTO currentView = (ViewDTO)enumerator.Current;
                componentTable.Add(currentView.ViewName + ".cs", templateTable[TemplateNamesDTO.ViewHandler]);
            }
            //Añadimos el file nant.
            if (preferencesDTO.GenerateBuildfile)
            {
                componentTable.Add(componentDTO.ComponentName + ".build", templateTable[TemplateNamesDTO.NAntBuildfile]);
            }
            return(componentTable);
        }
Example #9
0
        public IDataTransferObject GetDataForm()
        {
            Dialog  newViewDialog = (Dialog)GetWidget();
            ViewDTO viewDTO       = null;

            switch (newViewDialog.Run())
            {
            case (int)ResponseType.Ok:
                if (viewNameEntry.Text.Length != 0)
                {
                    viewDTO          = new ViewDTO();
                    viewDTO.ViewName = viewNameEntry.Text;
                }
                break;

            case (int)ResponseType.Cancel:
                break;

            default:
                break;
            }
            newViewDialog.Destroy();
            newViewDialog = null;
            return(viewDTO);
        }
Example #10
0
 public void LoadDataForm(IDataTransferObject dto)
 {
     if (dto is ViewDTO)
     {
         ViewDTO viewDTO = (ViewDTO)dto;
         viewNameEntry.Text = viewDTO.ViewName;
     }
 }
Example #11
0
 public ViewConfigurationModel(ViewDTO view)
 {
     Id        = view.Id.RawValue;
     AccessKey = view.AccessKey;
     Custom    = new ViewCustomizationModel(view.Customization);
     Columns   = view.Columns.Select(c => new ViewColumnConfigurationModel(c))
                 .ToList();
 }
Example #12
0
 public void Add(IDataTransferObject dto)
 {
     if (dto is ViewDTO)
     {
         ViewDTO viewDTO = (ViewDTO)dto;
         listStore.AppendValues(viewDTO.ViewName);
         list.Add(viewDTO);
     }
 }
        private async Task <ViewDTO> CreateDefaultViewAsync(CustomerId customerId)
        {
            var customer = await _persistence.Customers.GetAsync(customerId);

            var accessKey = ConfigurationController.GenerateAPIKey();
            var newView   = new ViewDTO(null, customerId, accessKey, new ViewCustomizationDTO("", "https://app.auditlog.co/images/logo56.png", customer.DisplayName, new List <ViewCustomizationHeaderLinkDTO>(), ""), CreateDefaultColumnLayout());

            return(await _persistence.Views.CreateNewAsync(newView));
        }
Example #14
0
 public static long SaveViewCache(long queryCacheId, long layoutId, ViewDTO zippedTable)
 {
     using (var avrTran = new AvrDbTransaction())
     {
         long id = SaveViewCacheWithoutTransaction(queryCacheId, layoutId, zippedTable);
         avrTran.CommitTransaction();
         return(id);
     }
 }
        private void DeleteView(object sender, EventArgs e)
        {
            if (listBoxViews.SelectedItem != null)
            {
                ViewDTO view = (ViewDTO)listBoxViews.SelectedItem;

                Services.ViewService.RemoveView(view.Id);

                LoadZone();
            }
        }
Example #16
0
        private void OnNewViewClicked(object sender, EventArgs args)
        {
            formView = new FormView();
            ViewDTO viewDTO = (ViewDTO)formView.GetDataForm();

            if (viewDTO != null)
            {
                viewTableModel.Add(viewDTO);
            }
            formView = null;
        }
        private void ChangeViewName(object sender, EventArgs e)
        {
            if (listBoxViews.SelectedItem != null)
            {
                ViewDTO view = (ViewDTO)listBoxViews.SelectedItem;

                Services.ViewService.SetNameView(view.Id, textBoxNameView.Text);

                LoadZone();
            }
        }
Example #18
0
        public void TestViewCache()
        {
            QueryTableModel actualTable = GetTestTableModel();

            AvrDbHelper.InvalidateQueryCache(actualTable.QueryId, "en");
            Assert.IsFalse(AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false).HasValue);
            AvrDbHelper.SaveQueryCache(actualTable);

            long?queryCacheId = AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false);

            Assert.IsTrue(queryCacheId.HasValue);

            ViewDTO sourceView  = GetCachedView();
            var     viewCacheId = AvrDbHelper.SaveViewCache(queryCacheId.Value, 1, sourceView);

            long?loadedViewCasheId = AvrDbHelper.GetViewCacheId(queryCacheId.Value, 11);

            Assert.IsFalse(loadedViewCasheId.HasValue);

            loadedViewCasheId = AvrDbHelper.GetViewCacheId(queryCacheId.Value, 1);
            Assert.IsTrue(loadedViewCasheId.HasValue);
            Assert.AreEqual(viewCacheId, loadedViewCasheId);

            var loadedView = AvrDbHelper.GetViewCache(viewCacheId, false);

            Assert.IsNotNull(loadedView);

            AvrDbHelper.InvalidateQueryCache(actualTable.QueryId);
            Assert.IsFalse(AvrDbHelper.GetQueryCacheId(actualTable.QueryId, "en", false).HasValue);

            loadedViewCasheId = AvrDbHelper.GetViewCacheId(queryCacheId.Value, 1);
            Assert.IsFalse(loadedViewCasheId.HasValue);

            loadedView = AvrDbHelper.GetViewCache(viewCacheId, false);
            Assert.IsNotNull(loadedView);

            AssertAreArrayEqual(sourceView.BinaryViewHeader, loadedView.BinaryViewHeader);
            AssertAreArrayEqual(sourceView.Header.BinaryBody, loadedView.Header.BinaryBody);
            Assert.AreEqual(sourceView.BodyPackets.Count, loadedView.BodyPackets.Count);
            for (int i = 0; i < loadedView.BodyPackets.Count; i++)
            {
                AssertAreArrayEqual(sourceView.BodyPackets[i].BinaryBody, loadedView.BodyPackets[i].BinaryBody);
            }

            AvrDbHelper.SaveViewCache(queryCacheId.Value, 1, sourceView);
            loadedViewCasheId = AvrDbHelper.GetViewCacheId(queryCacheId.Value, 1);
            Assert.IsTrue(loadedViewCasheId.HasValue);
            AvrDbHelper.InvalidateViewCache(1);
            loadedViewCasheId = AvrDbHelper.GetViewCacheId(queryCacheId.Value, 1);
            Assert.IsFalse(loadedViewCasheId.HasValue);
        }
Example #19
0
        private static ViewDTO GetCachedView()
        {
            byte[] viewBytes       = BinarySerializer.SerializeFromString(SerializedViewStub.ViewXml);
            byte[] viewZippedBytes = BinaryCompressor.Zip(viewBytes);

            DataTable sourceData = DataTableSerializer.Deserialize(SerializedViewStub.DataXml);

            BaseTableDTO serializedDTO = BinarySerializer.SerializeFromTable(sourceData);
            BaseTableDTO zippedDTO     = BinaryCompressor.Zip(serializedDTO);

            var result = new ViewDTO(zippedDTO, viewZippedBytes);

            return(result);
        }
Example #20
0
        public void Validate(ViewDTO view)
        {
            var exceptionList = new List <ValidationException>();

            if (view.MoneyPrecision < 0 || view.MoneyPrecision > 8)
            {
                exceptionList.Add(new ValidationException(Resource.Resource.MoneyPrecisionValidate, HelperService.GetMemberName((ViewDTO c) => c.MoneyPrecision)));
            }
            if (view.PercentyPrecision < 0 || view.PercentyPrecision > 8)
            {
                exceptionList.Add(new ValidationException(Resource.Resource.PercentyPrecisionValidate, HelperService.GetMemberName((ViewDTO c) => c.PercentyPrecision)));
            }
            CheckForExceptions(exceptionList);
        }
Example #21
0
 public void CreateOrUpdateView(ViewDTO view, string userId)
 {
     if (view == null)
     {
         throw new ValidationException(Resource.Resource.ViewNullReference, "");
     }
     if (db.Views.IsExist(view.Id))
     {
         UpdateView(view);
     }
     else
     {
         CreateView(view, userId);
     }
 }
        private void LoadView(object sender, EventArgs e)
        {
            if (listBoxViews.SelectedItem != null)
            {
                ViewDTO view = (ViewDTO)listBoxViews.SelectedItem;

                textBoxNameView.Text = view.Name;

                if (view.ImageMap.Length != 0)
                {
                    MemoryStream ms = new MemoryStream(Services.ViewService.GetViewImage(view.Id));
                    pictureBox.Image = Image.FromStream(ms);
                }
            }
        }
Example #23
0
        public async Task GetAsync_CreateViewAsync_ProducesNewView()
        {
            var    database          = new PersistenceStore(ConnectionString);
            string originalAccessKey = "abc-123";
            var    view = new ViewDTO(null, ValidCustomerId, originalAccessKey, new ViewCustomizationDTO("url", "logo", "title", new List <ViewCustomizationHeaderLinkDTO>(), "copyright"), new List <ViewColumnDTO>()
            {
            });

            var result = await database.Views.CreateNewAsync(view);

            Assert.AreEqual(originalAccessKey, result.AccessKey);
            Assert.AreNotEqual(originalAccessKey, view.AccessKey);
            Assert.AreEqual(view.CustomerId, result.CustomerId);
            Assert.IsNotNull(result.Id);
        }
Example #24
0
        public void CreateView(ViewDTO viewDto, string userId)
        {
            if (viewDto == null)
            {
                throw new ValidationException(Resource.Resource.ViewNullReference, "");
            }
            validateService.Validate(viewDto);

            var view = IMapper.Map <ViewDTO, ViewForTable>(viewDto);

            AddViewTemplateToView(view, view.ViewTemplateId);
            var customer = customerService.GetCustomerByProfileId(userId);

            view.Customer = customer;
            customer.Views.Add(view);
            db.Views.Create(view);
        }
Example #25
0
        public void UpdateView(ViewDTO viewDto)
        {
            if (viewDto == null)
            {
                throw new ValidationException(Resource.Resource.ViewNullReference, "");
            }
            if (!db.Views.IsExist(viewDto.Id))
            {
                throw new ValidationException(Resource.Resource.ViewNotFound, "");
            }
            validateService.Validate(viewDto);

            var view       = IMapper.Map <ViewDTO, ViewForTable>(viewDto);
            var viewFromDb = db.Views.Get(viewDto.Id);

            view.Customer = viewFromDb.Customer;
            AddViewTemplateToView(view, view.ViewTemplateId);

            db.Views.Update(view);
        }
Example #26
0
        public List <ViewDTO> getData()
        {
            List <ViewDTO> viewData  = new List <ViewDTO>();
            var            imageData = getImages();

            for (var i = 0; i < imageData.Count; i++)
            {
                var     restaurtantData = getRestaurant(imageData[i].tags);
                ViewDTO viewDTO         = new ViewDTO();
                viewDTO.imageURl = imageData[i].imageURl;
                if (restaurtantData.Count == 3)
                {
                    viewDTO.restaurant1 = restaurtantData[0];
                    viewDTO.restaurant2 = restaurtantData[1];
                    viewDTO.restaurant3 = restaurtantData[2];
                    viewData.Add(viewDTO);
                }
            }

            return(viewData);
        }
Example #27
0
        public void GetCachedViewTest()
        {
            BaseReportTests.InitDBAndLogin();

            var  facade   = new AVRFacade(m_Container);
            long layoutId = LayoutFormSave();

            List <long> queryIdList = facade.GetQueryIdList();

            Assert.IsNotNull(queryIdList);
            Assert.IsTrue(queryIdList.Count > 0);

            List <long> layoutIdList = facade.GetLayoutIdList();

            Assert.IsNotNull(layoutIdList);
            Assert.IsTrue(layoutIdList.Count > 0);

            ViewDTO model = facade.GetCachedView("xxx", layoutId, "en");

            Assert.IsNotNull(model);
            Assert.IsNotNull(model.BinaryViewHeader);
            Assert.IsNotNull(model.Header);
            Assert.IsNotNull(model.BodyPackets);

            byte[]  unzippedViewStructure = BinaryCompressor.Unzip(model.BinaryViewHeader);
            string  xmlViewStructure      = BinarySerializer.DeserializeToString(unzippedViewStructure);
            AvrView view       = AvrViewSerializer.Deserialize(xmlViewStructure);
            string  viewXmlNew = AvrViewSerializer.Serialize(view);

            Assert.IsNotNull(viewXmlNew);

            BaseTableDTO unzippedDTO = BinaryCompressor.Unzip(model);
            DataTable    viewData    = BinarySerializer.DeserializeToTable(unzippedDTO);
            string       dataXmlNew  = DataTableSerializer.Serialize(viewData);

            Assert.IsNotNull(dataXmlNew);
        }
Example #28
0
        public void ViewFacedeTest()
        {
            var facade = new AVRFacadeStub(123);

            ViewDTO model = facade.GetCachedView("xxx", -1, "en");

            Assert.IsNotNull(model);
            Assert.IsNotNull(model.BinaryViewHeader);
            Assert.IsNotNull(model.Header);
            Assert.IsNotNull(model.BodyPackets);

            byte[]  unzippedViewStructure = BinaryCompressor.Unzip(model.BinaryViewHeader);
            string  xmlViewStructure      = BinarySerializer.DeserializeToString(unzippedViewStructure);
            AvrView view       = AvrViewSerializer.Deserialize(xmlViewStructure);
            string  viewXmlNew = AvrViewSerializer.Serialize(view);

            Assert.AreEqual(SerializedViewStub.ViewXml, viewXmlNew);

            BaseTableDTO unzippedDTO = BinaryCompressor.Unzip(model);
            DataTable    viewData    = BinarySerializer.DeserializeToTable(unzippedDTO);
            string       dataXmlNew  = DataTableSerializer.Serialize(viewData);

            Assert.AreEqual(SerializedViewStub.DataXml, dataXmlNew);
        }
Example #29
0
        public static long SaveViewCacheWithoutTransaction(long queryCacheId, long layoutId, ViewDTO zippedTable)
        {
            lock (m_DbSyncLock)
            {
                using (DbManagerProxy manager = DbManagerFactory.Factory[DatabaseType.Avr].Create())
                {
                    DbManager headerCommand = manager.SetSpCommand("spAsViewCachePostHeader",
                                                                   manager.Parameter("idfQueryCache", queryCacheId),
                                                                   manager.Parameter("idfLayout", layoutId),
                                                                   manager.Parameter("blbViewSchema", zippedTable.Header.BinaryBody.ToArray()),
                                                                   manager.Parameter("blbViewHeader", zippedTable.BinaryViewHeader),
                                                                   manager.Parameter("intViewColumnCount", zippedTable.Header.RowCount)
                                                                   );

                    var viewCasheId = (long)headerCommand.ExecuteScalar();
                    for (int i = 0; i < zippedTable.BodyPackets.Count; i++)
                    {
                        DbManager command = manager.SetSpCommand("spAsViewCachePostPacket",
                                                                 manager.Parameter("idfViewCache", viewCasheId),
                                                                 manager.Parameter("intViewCachePacketNumber", i),
                                                                 manager.Parameter("intPacketRowCount", zippedTable.BodyPackets[i].RowCount),
                                                                 manager.Parameter("blbViewCachePacket", zippedTable.BodyPackets[i].BinaryBody.ToArray())
                                                                 );

                        command.ExecuteNonQuery();
                    }

                    return(viewCasheId);
                }
            }
        }
Example #30
0
        public ViewDTO GetCachedView(string sessionId, long layoutId, string lang)
        {
            try
            {
                m_ViewSemaphore.Wait();

                var       layout = AvrDbHelper.GetLayoutDTO(layoutId);
                Stopwatch watch  = TraceMethodCall(sessionId, layoutId, layout.DefaultLayoutName, lang);
                EidssAvrServiceInitializer.CheckAndInitEidssCore();

                ViewDTO view         = null;
                var     cacheKey     = new QueryCacheKey(layout.QueryId, lang, layout.UseArchivedData);
                long?   queryCacheId = AvrDbHelper.GetQueryCacheId(cacheKey, RefreshedCacheOnUserCallAfterDays);
                if (queryCacheId.HasValue)
                {
                    var viewCacheId = AvrDbHelper.GetViewCacheId(queryCacheId.Value, layoutId, RefreshedCacheOnUserCallAfterDays);
                    if (viewCacheId.HasValue)
                    {
                        view = AvrDbHelper.GetViewCache(viewCacheId.Value, false);
                    }
                }

                if (view == null)
                {
                    AvrPivotViewModel model = VirtualPivot.CreateAvrPivotViewModel(layoutId, lang, m_Container);

                    string xmlViewHeader    = AvrViewSerializer.Serialize(model.ViewHeader);
                    byte[] zippedViewHeader = BinaryCompressor.ZipString(xmlViewHeader);

                    BaseTableDTO serializedDTO = BinarySerializer.SerializeFromTable(model.ViewData);
                    BaseTableDTO zippedDTO     = BinaryCompressor.Zip(serializedDTO);

                    view = new ViewDTO(zippedDTO, zippedViewHeader);

                    queryCacheId = AvrDbHelper.GetQueryCacheId(cacheKey, RefreshedCacheOnUserCallAfterDays);
                    if (queryCacheId.HasValue)
                    {
                        AvrDbHelper.SaveViewCache(queryCacheId.Value, layoutId, view);
                    }
                }
                TraceMethodCallFinished(watch, sessionId, layoutId, layout.DefaultLayoutName, lang);
                return(view);
            }
            catch (OutOfMemoryException ex)
            {
                m_Trace.TraceMethodException(ex, Utils.GetCurrentMethodName(), m_TraceTitle, sessionId, layoutId, lang);
                throw new AvrDataException(EidssMessages.Get("ErrAVROutOfMemory"), ex);
            }
            catch (Exception ex)
            {
                m_Trace.TraceMethodException(ex, Utils.GetCurrentMethodName(), m_TraceTitle, sessionId, layoutId, lang);
                string format = EidssMessages.Get("msgCouldNotGetViewData",
                                                  "Could not get View Data from Layout. LayoutID={0}, Lang={1}, SessionId={2}");
                string msg = String.Format(format, layoutId, lang, sessionId);
                throw new AvrDataException(msg, ex);
            }
            finally
            {
                m_ViewSemaphore.Release();
            }
        }