MVC :: Injecting The Session Into A Wrapper Class

Aug 13, 2010

I've seen how to Fake the SessionState object in MVC using Scott Hanselmans MvcMockHelpers, but I'm dealing with a separate problem.What I like to do is create a wrapper around the Session object to make objects a little more accessible and strongly typed rather than using keys all over. Here is basically what it does:

public class SessionVars{ public SessionVars() {} public string CheckoutEmail { get { return Session[checkoutEmailKey] as string; } set { Session[checkoutEmailKey] = value; } }}

So that I can just do this in my controllers and views:

SessionVars s = new SessionVars();s.CheckoutEmail = "test@tester.com";

Now the problem comes in when I want to write unit tests, this class is tightly coupled with the HttpSessionState. What I can't figure out is what is the right class to accept/pass so that I can pass in a FakeHttpSession into the SessionVars class. I've tried so many things with this, and this (below) will compile, but it can't cast the HttpSessionState into the IDictionary. I've tried ICollection, HttpSessionStateBase.

public class SessionVars{ public SessionVars() : this(HttpContext.Current.Session) { } public SessionVars(ICollection session) { Session = (IDictionary<string, object>)session; } public IDictionary<string, object> Session { get; [code]...

I'm missing something big here. I feel like this is possible and that I should even be that far off.Furthermore, I'm confused as to whether I should use the IHttpSessionState, HttpSessionStateBase or the HttpSessionStateWrapper. What is the abstract type that I'd use for the session object inside my SessionVars class? What is the type that I pass into the constructor?

View 3 Replies


Similar Messages:

Chained Base Class Properties Not Injecting

Apr 2, 2010

I am successfully injecting base class properties with spring.net with just a class that inherits from a base abstract class. Lets say Class MyClass : MyBase, and I am successfully setting a property like this:

<object id="myInstantiableClass" type="myAssembly.MyClass myAssenbly" abstract="true">
<property name="MyBaseClassProperty" ref="anotherObjRef"></property> </object>

Where MyBaseClassProperty is a property on the base class. Now I have another abstract class between the old base class and the instantiable class and I am trying to set properties on both the abstract classes. So MyClass : MyNewBaseClass and MyNewBaseClass : MyBaseClass. I have an additional property on the new base class (MyNewBaseClassProperty) and I am trying to inject it like this:

<object id="myInstantiableClass" type="myAssembly.MyClass myAssenbly" abstract="true">
<property name="MyBaseClassProperty" ref="anotherObjRef"></property>
<property name="MyNewBaseClassProperty" ref="someOtherObjRef"></property>
</object>

The property on the old base class is being injected but the one on the new one is not - and I am not getting an error or anything (so I am pretty sure my config is good), that property is just null! I am on asp.net (not MVC) and the class MyClass is a user control (ascx).

View 1 Replies

DataSource Controls :: DB Wrapper Class For SQL Server And SQL?

Mar 4, 2010

Not sure if I'm posting in the right place so please forgive meI have an ASP.NET C# application that connects to either a SQL Server or MySQL database depending on some value that is set in my project config. The issue I'm trying to avoid is handling the connections and queries separately. Ideally I would want to use a DB Wrapper class that can handle both SQL Server and MySQL.

View 8 Replies

C# - Store Class Properties In Session And Use Of Session Handler - Is It Good Design

Jul 27, 2010

I have a class called EditMapUtilities. Here are some class properties that I want to persist:

public class EditMapUtlities
{
public static Boolean isInitialEditMapPageLoad
{
get { return SessionHandler.isInitialEditMapPageLoad; }
set { SessionHandler.isInitialEditMapPageLoad = value; }
}
// REST OF CLASS NOT GERMAIN TO DISCUSSION AND OMITTED
}

Here is my SessionHandler Class following the pattern from this post Static Session Class and Multiple Users:
using System.Web.SessionState;

public static class SessionHandler
{
private static HttpSessionState currentSession
{
get
{
if (HttpContext.Current.Session == null)
throw new Exception("Session is not available in the current context.");
else
return HttpContext.Current.Session;
}
}
//A boolean type session variable
private static string _isInitialEditMapPageLoad = "EditMapInitialPageLoad";
public static bool isInitialEditMapPageLoad
{
get
{
if (currentSession[_isInitialEditMapPageLoad] == null)
return true;
else
return (Boolean)currentSession[_isInitialEditMapPageLoad];
}
set
{
currentSession[_isInitialEditMapPageLoad] = value;
}
}
}

I am still learning OOAD. I want to keep relevant properties with relevant classes. I also want to keep all Session stored variables in one place for ease of maintenance and to encapsulate the session keys and calls. I feel like my design is too coupled though. How can I make it more loosely coupled? Is my editMapUtilities class too tightly coupled to the SessionHandler class? How would you do it better?

View 2 Replies

C# - Creating A Web Wrapper For COM And OCX?

Mar 17, 2010

Today we have a windows application that, using an OCX, creates a web page (visible by a WebBrowser control in a small .NET WinForm application) and communicates through COM to the main application/client. (not relevant but this is Pascal)

I'm currently responsible to re create this application in a web environment so we can have the same functionality shared through Web as the user can see the same in a Web Browser.

The Windows application has almost 4 years on it and I need to re create everything from scratch, and all the bugs/features find in the future in the Windows Application I have to re create them again in the Web...

is there any way I can create a Wrapper, even using 3rd party commercial objects, to:

Communicate with the COM Object Can expose the content of the OCX (this in my most confortable language, ASP.NET C#, but other are welcome) I was thinking out loud, can this be accomplish with a Java Applet? Silverlight 4?

View 1 Replies

Creating A Wrapper For HttpContext?

Feb 8, 2011

I'm trying to create a SessionManager class which I can use to manage sessions in my MVC applications. For that I'm thinking the best way of doing so is by creating a wrapper class for HttpContext which would then allow me to access HttpContext.Current.Session.

To be honest, I'm not really sure about the whole thing, I just feel it's the logical way of doing so. I also want to create an ISessionManager and ISession interfaces, and then implement them according to my application's needs. For my current project, and for now, I need a InProc session management, but I might need to store session data in MSSQL Server when we decide to expand and use a web farm or a garden. That's why I'm trying to build a sort of an extensible framework right from the start.

Final note, I will be using Microsoft Unity to inject the concrete SessionManager of choice. I believe that's a good way to maintain a certain level of abstraction.

View 1 Replies

ADO.NET :: Creating Dataset Wrapper In C#?

Oct 15, 2010

creating dataset wrapper in c# with sample code..

View 3 Replies

WCF / ASMX :: Soap Wrapper Around XmlDocument

Nov 8, 2010

I wrote a webmethod (Called SearchData()) in which the method makes a httpwebrequest to another url and gets the data in xmldocument. After getting the xmlDocument ,it is returned to SearchData method invoker. When i invoke the from browser it works fine. But When another application in java tries to consume this webmethod SearchData(), it is getting the error

<wsdl:part name="Body"/>

and each part should be type defined. The WSDL file is not well formatted. it doesn't have Type defined at each element. How to fix this.or Is there any other Better way to provide the end user the xml(ie from httpwebrequest result in webmethod ) with a soap wrapper ie with a well defined wsdl. My code :

[Code]....

View 1 Replies

Architecture :: How To Create Wrapper Classes

Nov 24, 2010

I have a third party dll and i need to add some more functionalities (methods, constants etc..) so create a wrapper class. I have no idea about wrapper classes. what is the purpose of this and how to create in .NET for this 3rd party dll.

View 6 Replies

Injecting Today's Date In Javascript?

Feb 15, 2011

When the page loads, I want a variable inside my JavaScript to hold today's date. So far I have this:

<script type="text/javascript">
var TodayDate = <%Eval('System.DateTime.Now') %>;
</script>

It massively bugs.

View 5 Replies

Dependencies Not Injecting - No Method Working

Jan 11, 2010

I am trying to create an ASP.NET MVC application, using Spring.NET to inject dependencies. The application has three tiers: Controller, Service, and Data. I have defined the objects in the file "~Resourcesobjects.xml". My first object, UserAccountController, requires the injection of two Service-tier classes: UserAccountService and DepartmentService. So, the definition in objects.xml looks like this:

<object id="UserAccountController" type="App.Controllers.UserAccountController, App">
<constructor-arg index="0" ref="DepartmentService" />
<constructor-arg index="1" ref="UserAccountService" /> </object>
<object id="UserAccountService" type="App.Service.UserAccountService, App">
<property name="UserAccountDao" ref="UserAccountDao" /> </object>
<object id="UserAccountDao" type="App.Data.UserAccountDao, App" />
<object id="DepartmentService" type="App.Service.DepartmentService, App">
<property name="DepartmentDao" ref="DepartmentDao" /> </object>
<object id="DepartmentDao" type="App.Data.DepartmentDao" />

Webconfig contains this:
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>
</sectionGroup> </configSections> <spring> <context>
<resource uri="~/Resources/objects.xml" /> </context> </spring>

I would prefer to use Property injection rather than constructor, but currently neither method is working.

View 3 Replies

AJAX :: CollapsiblePanelExtender Extra Div Wrapper?

Jul 15, 2010

I have this CollapsiblePanelExtender (below) the problem is that in firefox it gives a horizontal scroll bar under the control which has to expand.

[Code]....

Below is the generated HTML

[Code]....

If I remove the "overflow-y:hidden" from the generated div then the scroll bar goes away, which is what I want....

View 3 Replies

WCF / ASMX :: Writing A .NET REST Wrapper?

Oct 5, 2010

I am a REST web service newbie, does visual studio, .NET, or some other nifty microsoft tool provide any easy way to auto generate classes to consume a REST web service? With REST services is there even a service definition like there is with SOAP (WSDL) beyond the printed documentation? There is a new service that I'd like to consume but they only wrote wrappers for PHP, Pearl, Ruby, and Java and have more or less said you are on your own with .NET. I could write it myself but I'd like to cut corners and save time wherever possible.

View 1 Replies

Injecting JavaScript Outside An Update Panel?

Jan 8, 2010

I have an aspx page with four UpdatePanels. Incidentally, each UpdatePanel corresponds to a JQuery UI tab. What I am trying to achieve is a JQuery UI modal dialog OUTSIDE the UpdatePanels that can be called from server-side code running INSIDE any of the UpdatePanels. So, inside the first UpdatePanel is an asp:Button which runs some server-side code. When an error ocurrs, I want to be able to inject some JavaScript that will call the modal dialog to display the error message. Here is the code I am using:

Dim script As String = "showPopupMessage('{0}');"
script = String.Format(script, errorMessage)
ScriptManager.RegisterStartupScript(Me.UpdatePanelBizInfo, Me.UpdatePanelBizInfo.GetType, Guid.NewGuid.ToString, script, True)

The showPopupMessage function on the page looks like this:

function showPopupMessage(msg) {
$('#<%=Me.LabelPopupMessage.ClientID %>').text(msg);
$('#dialogPopupMessage').dialog('open');
}

When the code runs to inject the JavaScript, nothing happens. I am assuming it has something to do with the fact that the error ocurrs in the code running inside an UpdatePanel. Upon inspecting the resulting HTML, the JavaScript is there. What am I doing wrong?

View 1 Replies

Can't Set Session In A Class File

Apr 27, 2010

Why session is null in this even if i set:

public class HelperClass
{
public AtuhenticatedUser f_IsAuthenticated(bool _bRedirect)
{
HttpContext.Current.Session["yk"] = DAO.context.GetById<AtuhenticatedUser>(1);
if (HttpContext.Current.Session["yk"] == null)
{
if (_bRedirect)
{
HttpContext.Current.Response.Redirect(ConfigurationManager.AppSettings["loginPage"] + "?msg=You have to login.");
}
return null;
}
return (AtuhenticatedUser)HttpContext.Current.Session["yk"];
}
}

View 3 Replies

Web Forms :: Using Session Into A Class?

Apr 4, 2010

I'm tryng to use a session in a class Is that possible ? because, when I try it shows an error that tell "Name Session is not declared".

View 3 Replies

Injecting Table Row Inside Repeater Item

Apr 8, 2010

I am trying to inject inside repeaters items, the problem is that the row is generated in a wrong location. If you try this simple example, you will see that the rown is generated under label '2' as it should be generated under label '1'. Why does it happen? And how to fix that?

protected void Page_Load(object sender, EventArgs e)
{
int [] array = {1,2,3,4,5};
rpt.DataSource = array;
rpt.DataBind();
}
protected string _extraRowHtml;
protected void rpt_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
int tmp = ((int)e.Item.DataItem);
_extraRowHtml = tmp == 1 ? "<tr><td class="topicsRow" colspan="100%"> Topics </td></tr>" : string.Empty; ;
}
}
<asp:Repeater ID="rpt" runat="server" onitemdatabound="rpt_ItemDataBound">
<HeaderTemplate>
<table cellpadding="0px" cellspacing="0">
</HeaderTemplate>
<ItemTemplate>
<tr style="height:50px">
<td>
<asp:HyperLink ID="lnkTitle" runat="server" Text='<%# Container.DataItem%>'/>
</td>
</tr>
<%# _extraRowHtml %>
</ItemTemplate>
<FooterTempl
</table>
</FooterTemplate>
</asp:Repeater>

View 2 Replies

Injecting A Web User Control With Ninject In WebForms

Dec 16, 2010

I have an aspx page that I would like to have injected a reference to a user control. The user control is stored in a seperate assembly and loaded at runtime. After injected the user control it should then be loaded into the control collection of the page.

Everything seems to be working fine expect the point of adding the control to the page. There is no error but the UI for the control doesn't show.

global.asax.cs

protected override Ninject.IKernel CreateKernel()
{
var modules = new INinjectModule[] { new MyDefaultModule() };
var kernel = new StandardKernel(modules);
// Loads the module from an assembly in the Bin
kernel.Load("ExternalAssembly.dll");
return kernel;
}

and here is how the external module is defined in the other assembly:

public class ExternalModule : NinjectModule
{
public ExternalModule() { }
public override void Load()
{
Bind<IView>().To<controls_MyCustomUserControlView>();
}
}

The debugger shows that when the app is run, the Load on the external module is being called, and the dependency gets injected into the page.

public partial class admin_MainPage : PageBase
{
[Inject]
public IView Views { get; set; }

At this point when trying to add the view (here a user control) to the page, nothing is shown. Is this something to do with the way the user control is created by Ninject? The loaded control seems to have an empty control collection.

inside aspx page

var c = (UserControl)Views;

// this won't show anything. even the Control collection of the loaded control (c.Controls) is empty
var view = MultiView1.GetActiveView().Controls.Add(c);

// but this works fine
MultiView1.GetActiveView().Controls.Add(new Label() { Text = "Nice view you got here..." });

and finally the view/user control:

public partial class controls_MyCustomUserControlView : UserControl, IView
{
}

It contains just one label:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="MyCustomUserControlView.ascx.cs" Inherits="controls_MyCustomUserControlView" %>
<asp:Label Text="Wow, what a view!" runat="server" />

View 1 Replies

ADO.NET :: Light Weight Data Access Wrapper

Mar 8, 2011

I am just trying to figure something out. At work we have alot of data access code Ex:

[Code]....

Pretty standard stuff really, but I was at a training course recently where the Developers insisted on wrapping code, that seemed nothing more than expose exactly the same functionality.

I was interested in your thoughts as to whether this was a good idea. So the above would inherit from a DbHelper class with some thing like:

[Code]....

These would just expose the same but maybe a bit more generic i.e. using DbCommand as opposed to SqlCommand.

View 1 Replies

C# Wrapper Or Samples For Google Site Search?

Sep 25, 2010

Anybody seen any c# code examples for using Google site search to send a request to the Google search api and return the results in xml?

View 1 Replies

AJAX :: Injecting Javascript Via Append Into PopupControlExtender?

Jan 18, 2011

I have a page with a grid view that the user can hover over an image within the row and it will retrieve additional information from the database and show it in a panel called by the PopupControlExtender.

I then wanted to add a bing map showing the location within the same panel. This also works correctly EXCEPT I can't seem to get the map to show automatically. If I add a Mouseover or click event it works, but no matter what I try (inline, function, etc.) I can't get it to show when the panel shows. The user has to take action for it to appear which is not what I want.

Here is the section of code with the bolded section the code that is problematic:

Again - I just want the Mouseover requirement removed so that the map will show without further input

[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()]
public static string GetDynamicContent(string contextKey)
{
string[] strArrayVal;
string CK;

[Code]....

View 1 Replies

Injecting UrlEncoded String Into Page - Firefox Vs Chrome

Jan 11, 2011

It seems the following markup is rendered differently in Firefox and Chrome, and I'm not sure how to prevent it:

<%= HttpUtility.UrlEncode("+") %>
<%= "<a href='#' name='" + HttpUtility.UrlEncode("+") + "'>stuff</a>"%>

In Firefox it looks like:
%2b<a name="+" href="#">stuff</a>
In Chrome it looks like:
%2b<a name="%2b" href="#">stuff</a>

Is there a way around it?

View 2 Replies

JQuery In UpdatePanel Wrapper For PageRequestManager.getInstance().add_endRequest

Mar 18, 2011

When jQuery is applied to elements in an UpdatePanel, when the UpdatePanel refreshes, the jQuery is not applied to the newly injected HTML. This issue is resolved by using

Sys.WebForms.PageRequestManager.getInstance().add_endRequest() to register a function to be called when the AJAX request is complete: I've written a function that registers the function with add_endRequest, and also calls it at the same time:

Async.RegisterAndRun = function(callback) {
//register function to be run when an update panel request is complete
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(callback);
//also run the function right now.
callback();
};

Now all we need to call is Async.RegisterAndRun(AddFancyjQueryToMyHTML); or
Async.RegisterAndRun(function(){
AddFancyjQueryToMyHTML();
AddMoreFancyjQueryToMyHTML('with', 'args');
});

Currently it does what I need it to, and I never need to explicitly call add_endRequest which is nice.

View 2 Replies

Web Forms :: Dynamic Injecting HTML Code With Controls?

Jan 1, 2011

i need to dynamically add HTML codes that contains some asp.net controls.

View 4 Replies

AJAX :: Write A Wrapper Method Around The WebMethod When Using PageMethods?

Jan 19, 2011

I am using ASP.net with WebMethods to show data to the customer and save data entered by the customer.

My current framework uses javascript to create an xml with all of the values of all the html elements in de "div" (or other element). This xml is converted to a string and send to the webserver using PageMethods.

When I receive this xml (as a string), I parse it with my own XmlDataParser which does some security checks.

I need to parse the xml to an XmlDataParser in every PageMethod I use, and I also need to catch different exceptions (like exceptions that are thrown when data is validated) to show them to the user (=> The reason why is explained in one of my previous posts: [URL]

I wonder if it is possible to write a wrapper around the WebMethod, so I can parse the xml to the XmlDataParser in this wrapper, and pass it on to the code behind, and process exceptions that occur in the code behind?

View 4 Replies







Copyrights 2005-15 www.BigResource.com, All rights reserved