Гость
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Перенос кода C# из .aspx.cs в .aspx / 1 сообщений из 1, страница 1 из 1
31.08.2020, 10:19
    #39994009
Vlad__i__mir
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос кода C# из .aspx.cs в .aspx
Здравствуйте!

Что бы доработать формирование одного из отчетов web-сервиса, исходников которого нет, возник вариант перенести код C# из файла .aspx.cs, который компилируется предварительно, в файл .aspx, который должен компилироваться динамически IIS.

В интернете нашел инфу с примерами, но примеры очень примитивные не используют объекты классов, а только методы.
Возник вопрос как перенести код, который использует объекты других классов?

Неужели нужно переносить коды всех классов, которые используются или можно как-то к ним обращаться из .aspx?

Можно ли вообще описывать классы в .aspx или только методы?

Вообще возможно ли это в моем случае?

Код класса, который пытаюсь перенести в .aspx:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
using System;
using System.Collections;
using System.Web.UI.WebControls;
using ErrorBuilder;
using InMeta.Comparer.Estate;
using Integro.InMeta.Estate.Forms.EstateRent;
using Integro.InMeta.Runtime;
using Integro.InMeta.Web;
using Integro.MyTableRender;

public partial class EstateDebitorsListBySubRgnNew : WebPage
{
    private class ItogByAllContract
    {
        public int DebitContractCount = 0;
        public int CreditContractCount = 0;
        public decimal DebitSum = 0;
        public decimal CreditSum = 0;
        public decimal FixedDebitSum = 0;
        public decimal FixedCreditSum = 0;
    }

    private readonly ItogByAllContract itogsByAllContract = new ItogByAllContract();
    private string SubRgnName
    {
        get{
            string result;
            if (ddSubRgnList.SelectedValue == "all"){
                result = "по всем районам";
            }
            else{
                result = string.Format("в {0} районе", ddSubRgnList.SelectedItem.Text.Replace("ий", "ом"));
            }
            return result;
        }
    }

    private string ContractStateKindText
    {
        get { return ddContractStateKindList.SelectedItem.Text; }
    }

    private double FSumArea = 0;
    private decimal FSumMonthPayment = 0;
    private decimal FSumPaymentCharge = 0;
    private decimal FSumPayment = 0;
    private decimal FSumWriteOff = 0;
    private decimal FSumTransfer = 0;
    private decimal FSumBalance = 0;
    private decimal FSumPenlaty = 0;
	private decimal FSumPaymentTransferPrevPeriods = 0;
    private int FDebtMonthCount = 0;
    private decimal FDebtSum = 0;
    private DateTime FCurrentDate;
    private DateTime FStartDate = new DateTime(2008, 01,01);
    private decimal FLastBalanceValue = 0;
    private decimal FCorrectionBalanceValue = 0;
    private int FActiveContract = 0;
    private int FContractWithoutCharges = 0;

    private decimal FSumPenaltyCharges = 0;
    private decimal FSumPenaltyPayments = 0;
    private decimal FSumPenaltyWriteOff = 0;
    private decimal FSumPenaltyStartBalance = 0;
	decimal FSumPenaltyStartBalancePrevSums = 0;
	private decimal FSumPenaltyTransfered = 0;
	private decimal FSumPaymentPenaltyTransferPrevPeriods = 0;

    protected void Page_Load(object sender, EventArgs e)
    {
    	ReportPanel.Visible = false;
    	PolicyFailedInfoPanel.Visible = false;

		if (!Session.IsPolicyEnabled("UseEstateChargesAndPaymentsReports")){
			PolicyFailedInfoPanel.Visible = true;
			return;
		}

		ReportPanel.Visible = true;
        if (IsPostBack){
            FStartDate = new DateTime(Convert.ToDateTime(DateEditor.Text).Year, 01, 01);
        }
        else{
            DateEditor.Text = DateTime.Today.ToShortDateString();
            
            string RegionID = Session.Application.Settings.GetLocalSettings("RegionID", "00018019E1C5");
            DataObjectList subRgnList = Session["General/SubRgn"].Query("<Name/>", "Region = '" + RegionID + "'");
            foreach (DataObject subRgn in subRgnList){
                ListItem item = new ListItem(subRgn.GetString("Name"), subRgn.Id.ToString());
                ddSubRgnList.Items.Add(item);
            }
        }
    }

    protected void OKBtn_Click(object sender, EventArgs e)
    {
        FCurrentDate = Convert.ToDateTime(DateEditor.Text);
        if (!ParamsFillIsCorrect()){
            Response.Write("Неверно введен один из параметров");
            return;
        }
        if (EdtMonthCount.Text != ""){
            FDebtMonthCount = Convert.ToInt32(EdtMonthCount.Text);
        }

        if (EdtDebtSum.Text != ""){
            FDebtSum = Convert.ToDecimal(EdtDebtSum.Text);
        }

        string SubRgnConditions = "";
        if (ddSubRgnList.SelectedValue != "all"){
            SubRgnConditions = " and BuildingID.General_PostAddr.SubRgn = '" + ddSubRgnList.SelectedValue+"'";
        }
        DataObjectList processList = Session[EstateRentClasses.Process].Query(
            "<RentContractProcessKind>" +
                "<Abbreviation/>" +
            "</RentContractProcessKind>" +
            "<Estate_RentContract>" +
                "<ContractNo/>" +
                "<ContractCode/>" +
            "</Estate_RentContract>" +
            "<Estate_RentPretender>" +
                "<Subject>" +
                    "<query-view name='PostAddrView'/>" +
                    "<Inn/>"+
                    "<SocialNo/>"+
                 "</Subject>" +                 
            "</Estate_RentPretender>" +
            "<Estate_RentObject>" +
                "<RentArea/>" +
            "</Estate_RentObject>" +
            "<Estate_RentCalculation>" +
                "<RentCalculatedPayment/>" +
            "</Estate_RentCalculation>" +
            "<Estate_RentPayment>" +
                "<RentPaymentValue/>" +
            "</Estate_RentPayment>" +
            "<Estate_RentPaymentCharge>" +
                "<OwnerPayment/>" +
            "</Estate_RentPaymentCharge>" +
            "<BuildingID>" +
               "<General_PostAddr>" +
                    "<SubRgn/>" +
               "</General_PostAddr>" +
            "</BuildingID>",
            "RentContractProcessKind.Abbreviation = 'ДА' " + SubRgnConditions);
        if (processList.Count == 0){
            Response.Write("<font color='red'>По данному району договоров не найдено</font>");
            return;
        }

        TableRender table = new TableRender(holder, "<h5>Привееет " + ContractStateKindText +
            " договорам аренды помещений, расположенных " + SubRgnName + " г. Оренбурга по состоянию на " +
            FCurrentDate.ToShortDateString() + "</h5>");

        ReportErrorsBuilder errorsBuilder = new ReportErrorsBuilder("EstateDebitorsListBySubRgnNew");
       
        FormingHeaderDataTable(table);
        FormingDataTable(processList, table, errorsBuilder);
        FillItogInformation(table);
        FormingErrors(errorsBuilder);

        btnExportToExcel.Enabled = true;
        btnExportToWord.Enabled = true;
    }

    private void FormingErrors(ReportErrorsBuilder errorsBuilder)
    {
        if(errorsBuilder.ErrorIsExist) {
            LblErrorCaption.Visible = true;
            HyperLinkError.Visible = true;
            string logfilePath = errorsBuilder.CreateErrorTableFile();
            LblErrorCaption.Text = "<font color='red'>При формировании отчета возникли ошибки</font>";
            HyperLinkError.Text = "Просмотреть ошибки";
            HyperLinkError.NavigateUrl = logfilePath;

            LblErrorCaption.Visible = true;
            HyperLinkError.Visible = true;
        }
    }

	private void GetSubRgnNameAndFillRow(string subRgnId, TableRender table)
	{
		if (ddSubRgnList.SelectedValue == "all"){
			if (subRgnId != "000000000001"){
				DataObject subRgn = Session["General/SubRgn"].GetObject(new DataId(subRgnId));
				SetSubRgnRow(table, subRgn.GetString("Name"));
			}
			else{
				SetSubRgnRow(table, "Район не задан");
			}
		}
	}

	private void SortProcessBySubRgn(DataObjectList processList, Hashtable ProcessBySubRgnList)
	{
		foreach (DataObject process in processList){
			DataObject lastProcessInHierarchy = WorkUtils.GetEstateLastDSVI(process);

			if (!ContractStateKindIsCorrect(lastProcessInHierarchy)){
			    continue;
			}
			SortingProcessBySubRgn(lastProcessInHierarchy, ProcessBySubRgnList);
		}
	}

	private BalanceInfoForProcess FormingData(DataObject process)
    {
		BalanceInfoForProcess infoByRCP = FinishBalanceInfoCalculator.GetCalculatedBalance(process, FStartDate, FCurrentDate);
		
		return infoByRCP;
    }

	private decimal GetPenaltyTransferedSum(BalanceInfoForProcess infoByRCP)
	{
		decimal penaltyTransferSum = 0;
		foreach (TransferSumInfo transferSumInfo in infoByRCP.TransferSumInfos)
		{
			if (!transferSumInfo.IsPenalty) continue;

			penaltyTransferSum += GetTransferSumByPayment(transferSumInfo);

			penaltyTransferSum += GetTransferSumByDebt(transferSumInfo);
		}
		return penaltyTransferSum;
	}

	private decimal GetTransferSumByDebt(TransferSumInfo transferSumInfo)
	{
		decimal transferSum = 0;
		if (transferSumInfo.TransferSumKind == TransferSumKind.Debt)
		{
			if (transferSumInfo.TransferSumLocation == TransferSumLocation.FromContract)
			{
				transferSum += transferSumInfo.TransferSum;
			}
			if (transferSumInfo.TransferSumLocation == TransferSumLocation.ToContract)
			{
				transferSum += transferSumInfo.TransferSum * -1;
			}
		}
		return transferSum;
	}

	private decimal GetTransferSumByPayment(TransferSumInfo transferSumInfo)
	{
		decimal transferSum = 0;
		if (transferSumInfo.TransferSumKind == TransferSumKind.Payment)
		{
			if (transferSumInfo.TransferSumLocation == TransferSumLocation.FromContract){
				transferSum += transferSumInfo.TransferSum * -1;
			}
			if (transferSumInfo.TransferSumLocation == TransferSumLocation.ToContract){
				transferSum += transferSumInfo.TransferSum;
			}
		}
		return transferSum;
	}

	private void SetSubRgnRow(TableRender table, string subRgnName)
    {
        TableRow row = new TableRow();
        table.AddReportCell(row, "<b>" + subRgnName + " район</b>", 13, HorizontalAlign.Center);
        table.TableReport.Rows.Add(row);
    }

    private void SortingProcessBySubRgn(DataObject lastDsvi, Hashtable ProcessBySubRgnList)
    {
        DataObject building = lastDsvi.GetLink("BuildingID");
        DataObject buildingAddr = building.GetChilds(EstateRentClasses.PostAddr).First;
        
        string subRgnId;
        if (!buildingAddr["SubRgn"].IsNull){
            subRgnId = buildingAddr.GetLink("SubRgn").Id.ToString();
        }
        else{
            subRgnId = "000000000001";
        }

        if (ProcessBySubRgnList.ContainsKey(subRgnId)){
            ArrayList processList = (ArrayList)ProcessBySubRgnList[subRgnId];
            processList.Add(lastDsvi);
        }
        else{
            ArrayList processList = new ArrayList();
            processList.Add(lastDsvi);
            ProcessBySubRgnList.Add(subRgnId, processList);
        }
    }

    private bool ParamsFillIsCorrect()
    {
        bool result = true;
        if (EdtMonthCount.Text != ""){
            try{
                Convert.ToInt32(EdtMonthCount.Text);
            }
            catch { result = false; }
        }

        if (EdtDebtSum.Text != ""){
            try{
                Convert.ToDecimal(EdtDebtSum.Text);
            }
            catch { result = false; }
        }

        return result;
    }

    private bool ProcessIsRightConditions(DataObject process, BalanceInfoForProcess infoByRCP)
    {
        bool result = true;
        if (ddDebtKindList.SelectedValue != "all"){
            if (ddDebtKindList.SelectedValue == "debt" && infoByRCP.FinishBalanceValue <= 0){
                result = false;
            }
            if ((ddDebtKindList.SelectedValue == "credit") && (infoByRCP.FinishBalanceValue >= 0)){
                result = false;
            }
        }
        if (FDebtMonthCount > 0 && FDebtMonthCount > GetMonthCountDebt(process, infoByRCP)){
            result = false;
        }
        
        if (FDebtSum > 0 && FDebtSum > infoByRCP.FinishBalanceValue){
            result = false;
        }

        return result;
    }


    private void FillDataTable(TableRender table, DataObject process, DataObject lastDsvi, BalanceInfoForProcess infoByRCP)
    {
        FActiveContract++;
        TableRow dataRow = new TableRow();
        table.AddReportCell(dataRow, GetContractNo(process));
        table.AddReportCell(dataRow, GetContractCode(process));
        table.AddReportCell(dataRow, GetPretenderName(lastDsvi));
        table.TableReport.Rows.Add(dataRow);
    }


    private string GetPretenderName(DataObject process)
    {
        DataObjectChildList pretenderChildList = process.GetChilds(EstateRentClasses.Pretender);
        if(pretenderChildList.Count == 0){
            return string.Empty;
        }

        DataObject pretender = pretenderChildList.First;

        if (pretender["Subject"].IsNull){
            return string.Empty;
        }

        return pretender.GetLink("Subject").GetViewHtml("PostAddrView");
    }


    private string GetContractCode(DataObject process)
    {
        if(!process["RootRCP"].IsNull) {
            process = process.GetLink("RootRCP");
        }
        
        return EstateUtils.GetContract(process).GetString("ContractCode", string.Empty);
    }

    private string GetContractNo(DataObject process)
    {
        if (!process["RootRCP"].IsNull){
            process = process.GetLink("RootRCP");
        }


        return EstateUtils.GetContract(process).GetString("ContractNo", string.Empty);
    }

    private void FormingHeaderDataTable(TableRender table)
    {
        TableRow row = new TableRow();
        table.AddReportCell(row, "<b>Номер договора</b>");
        table.AddReportCell(row, "<b>Шифр</b>");
        table.AddReportCell(row, "<b>Арендатор</b>");
        table.TableReport.Rows.Add(row);
    }

}
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Перенос кода C# из .aspx.cs в .aspx / 1 сообщений из 1, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]