public static class MyApplicationName
{
public static DateTime Now
{
get { return DateTime.Now; }
}
}
Це потрібно для того, щоб у майбутньому можна було зробити детерміновані тести, які зможуть емулювати потрібний час доби.
public static class MyApplicationName
{
public static DateTime Now
{
get { return DateTime.Now; }
}
}
в якому вказати посилання на свою тестову сторінку і розміри сілверлайт-аплікейшена.
<center><br /><iframe style="WIDTH: 640px; HEIGHT: 480px" src="http://mace.at.ua/TestPage.html" frameborder="0" scrolling="no"></iframe><br /></center>
#include <iostream>
#include <sstream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <memory>
#include <cctype>
#include <string>
#include <vector>
#include <list>
#include <queue>
#include <deque>
#include <stack>
#include <map>
#include <set>
#include <algorithm>
using namespace std;
#define INF 2000000000
#define FOR(i, a, b) for(i = a; i < b; i++)
#define DFOR(i, a, b) for(i = a - 1; i >= b; i--)
#define ALL(c) (c).begin(),(c).end()
class Stick
{
public:
int pieces(int x)
{
int res=0;
while(x>0)
{
if(x&1)
res++;
x>>=1;
}
return res;
}
};
struct Stick { int pieces(int x){ return x == 0 ? 0 : pieces(x/2)+x%2; } };
protected void Application_Start(object sender, EventArgs e)
{
AuthorizeRequest += Application_AutorizeRequest;
}
protected void Application_AutorizeRequest(object sender, EventArgs e)
{
if (Request.IsAuthenticated)
{
if(...) // user hasn`t rights to use current page
{
Response.Redirect("AccessDenied.aspx");
}
}
else // must log in
{
Response.Redirect("Login.aspx");
}
}
protected void Application_Start(object sender, EventArgs e)
{
AuthorizeRequest += Application_AutorizeRequest;
}
protected void Application_AutorizeRequest(object sender, EventArgs e)
{
if (Request.IsAuthenticated)
{
if(...) // user hasn`t rights to use current page
{
Redirect("AccessDenied.aspx");
}
}
else
{
Redirect("Login.aspx");
}
}
protected void Redirect(string url)
{
HttpContext.Current.Cache["RedirectUrl"] = url;
}
public abstract class MyPage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(HttpContext.Current.Cache["RedirectUrl"] != null)
{
string url = (string) HttpContext.Current.Cache["RedirectUrl"];
HttpContext.Current.Cache.Remove("RedirectUrl");
Response.Redirect(url);
}
// ...
}
// ...
}
using System.Web.UI.WebControls;
namespace MyControlsLib.TabControl
{
public class TabView : View
{
public string TabName { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace MyControlsLib.TabControl
{
[ParseChildren(true, "Views")]
public class TabMultiView : CompositeControl
{
public TabMultiView()
{
m_MultiView = new MultiView();
m_Menu = new Menu();
}
protected override void CreateChildControls()
{
base.CreateChildControls();
m_Menu.MenuItemClick += Menu_Click;
int index = 0;
foreach (var tab in Views)
{
MenuItem item = new MenuItem(tab.TabName, index.ToString());
item.Selected = index == ActiveIndex;
m_Menu.Items.Add(item);
m_MultiView.Views.Add(tab);
index++;
}
m_Menu.Orientation = Orientation.Horizontal;
if(!string.IsNullOrEmpty(SelectedTabCssClass))
{
m_Menu.StaticSelectedStyle.CssClass = SelectedTabCssClass;
m_Menu.StaticSelectedStyle.HorizontalPadding = 0;
m_Menu.StaticSelectedStyle.VerticalPadding = 0;
}
else
{
m_Menu.StaticSelectedStyle.BackColor = Color.LightGray;
m_Menu.StaticSelectedStyle.ForeColor = Color.Black;
}
if(!string.IsNullOrEmpty(UnselectedTabCssClass))
{
m_Menu.StaticMenuItemStyle.CssClass = UnselectedTabCssClass;
m_Menu.StaticMenuItemStyle.HorizontalPadding = 0;
m_Menu.StaticMenuItemStyle.VerticalPadding = 0;
}
else
{
m_Menu.StaticMenuItemStyle.BackColor = Color.Black;
m_Menu.StaticMenuItemStyle.ForeColor = Color.White;
}
// multiview
Controls.Add(m_Menu);
Controls.Add(m_MultiView);
}
private void Menu_Click(object sender, MenuEventArgs e)
{
ActiveIndex = int.Parse(e.Item.Value);
}
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
if(ActiveIndex < 0)
{
if(Views.Count > 0)
{
throw new NotSupportedException("Invalid ActiveIndex property. You must set it correct.");
}
}
else
{
m_MultiView.Visible = true;
}
}
public string UnselectedTabCssClass { get; set; }
public string SelectedTabCssClass { get; set; }
public int ActiveIndex
{
get
{
object viewState = ViewState["ActiveIndex"];
if(viewState == null)
{
return -1;
}
return (int) viewState;
}
set
{
ViewState["ActiveIndex"] = value;
m_MultiView.ActiveViewIndex = value;
}
}
public List<TabView> Views
{
get
{
if (m_Tabs == null)
{
m_Tabs = new List<TabView>();
}
return m_Tabs;
}
}
private Menu m_Menu;
private MultiView m_MultiView;
private List<TabView> m_Tabs;
}
}
<pages>
<controls>
<add assembly="MyControlsLib" namespace="MyControlsLib.TabControl" tagPrefix="my"/>
</controls>
</pages>
<my:TabMultiView runat="server" ActiveIndex="0" SelectedTabCssClass="SelectedTab" UnselectedTabCssClass="UnselectedTab">
<my:TabView runat="server" TabName="Tab1">
<asp:Panel runat="server" CssClass="TabPanel">
Blah-Blah-Blah
</asp:Panel>
</my:TabView>
<my:TabView runat="server" TabName="Second tab">
<asp:Panel runat="server" CssClass="TabPanel">
Мне бы джина, я б тогда не путался в проводах<br />
Прям из Крыма по Днепру бы подтянул Карадаг<br />
До зарплаты за неделю не был бы на мели<br />
Королевы и принцессы in love with me, yeah.<br />
Тру бутылки, банки, кружки, баночки тоже тру<br />
Спрячу джина под подушку, достану поутру<br />
Вот тогда бы мы дел наделали, вот тогда б зажгли<br />
Все дела поотменять, потому что у меня...<br /><br />
На восьмом этаже - пати в неглиже<br />
На седьмом этаже - соседи спят уже<br />
На девятом этаже - медведи и Фаберже<br />
Этажом выше - спецназ на крыше.<br />
</asp:Panel>
</my:TabView>
<my:TabView runat="server" TabName="Yet another tab...">
<asp:Panel runat="server" CssClass="TabPanel">
Hello world!
</asp:Panel>
</my:TabView>
</my:TabMultiView>