121 lines
4.0 KiB
C#
121 lines
4.0 KiB
C#
using Dapper;
|
|
using SolarPower.Helper;
|
|
using SolarPower.Models;
|
|
using SolarPower.Repository.Interface;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace SolarPower.Repository.Implement
|
|
{
|
|
public class OperationRepository : RepositoryBase<Operation>, IOperationRepository
|
|
{
|
|
public OperationRepository(IDatabaseHelper databaseHelper) : base(databaseHelper)
|
|
{
|
|
tableName = "operation_plan_create";
|
|
}
|
|
public async Task<List<PowerStationIdList>> GetPowerStationIdList(int UserId)
|
|
{
|
|
List<PowerStationIdList> result;
|
|
using (IDbConnection conn = this._databaseHelper.GetConnection())
|
|
{
|
|
try
|
|
{
|
|
var sql = @$"SELECT tn.Id AS Value, tn.Name AS Text FROM power_station tn LEFT JOIN power_station_operation_personnel pp
|
|
ON tn.Id=pp.PowerStationId
|
|
WHERE pp.UserId = @userid";
|
|
result = (await conn.QueryAsync<PowerStationIdList>(sql, new { userid = UserId })).ToList();
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
throw exception;
|
|
}
|
|
return result;
|
|
}
|
|
}
|
|
|
|
public async Task AddOperationPlan(OperationCreatePlan OperationPlan, List<string> properties)
|
|
{
|
|
using (IDbConnection conn = _databaseHelper.GetConnection())
|
|
{
|
|
conn.Open();
|
|
try
|
|
{
|
|
string sql = GenerateInsertQuery(properties);
|
|
|
|
await conn.ExecuteAsync(sql, OperationPlan);
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
throw exception;
|
|
}
|
|
finally
|
|
{
|
|
conn.Close();
|
|
}
|
|
|
|
}
|
|
}
|
|
public async Task<List<OperationPlanTable>> OperationPlanTable(List<int> id)
|
|
{
|
|
List<OperationPlanTable> result;
|
|
var count = 0;
|
|
string Wheresql = "oc.PowerStationId = ";
|
|
foreach (int too in id)
|
|
{
|
|
|
|
if(count == id.Count-1)
|
|
{
|
|
Wheresql += too.ToString();
|
|
}
|
|
else
|
|
{
|
|
Wheresql += too.ToString() + " OR oc.PowerStationId = ";
|
|
}
|
|
count++;
|
|
}
|
|
using (IDbConnection conn = this._databaseHelper.GetConnection())
|
|
{
|
|
try
|
|
{
|
|
var sql = @$"SELECT *,ps.Name AS PowerStationName ,us.Name AS CreatedPerson FROM operation_plan_create oc LEFT JOIN power_station ps
|
|
ON oc.PowerStationId = ps.Id LEFT JOIN user us
|
|
ON us.Id = oc.CreatedBy WHERE {Wheresql} AND oc.Deleted = 0";
|
|
result = (await conn.QueryAsync<OperationPlanTable>(sql)).ToList();
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
throw exception;
|
|
}
|
|
return result;
|
|
}
|
|
}
|
|
public async Task<OperationCreatePlan> GetOneOperation(int id)
|
|
{
|
|
OperationCreatePlan result;
|
|
using (IDbConnection conn = _databaseHelper.GetConnection())
|
|
{
|
|
conn.Open();
|
|
try
|
|
{
|
|
var sql = @"SELECT * FROM operation_plan_create WHERE Deleted =0 AND Id = @Id";
|
|
|
|
result = await conn.QueryFirstOrDefaultAsync<OperationCreatePlan>(sql, new { Id = id });
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
throw exception;
|
|
}
|
|
finally
|
|
{
|
|
conn.Close();
|
|
}
|
|
|
|
return result;
|
|
}
|
|
}
|
|
}
|
|
}
|