using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using SolarPower.Models; using SolarPower.Models.PowerStation; using SolarPower.Repository.Interface; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace SolarPower.Controllers { public class AnalysisStationCombineController : MyBaseController { private readonly IAnalysisStationCombineRepository analysisStationCombineRepository; private readonly IPowerStationRepository powerStationRepository; public AnalysisStationCombineController( IAnalysisStationCombineRepository analysisStationCombineRepository, IPowerStationRepository powerStationRepository) : base() { this.analysisStationCombineRepository = analysisStationCombineRepository; this.powerStationRepository = powerStationRepository; } public IActionResult Index() { return View(); } public ApiResult>> GetPowerStationCollapse(string filter) { ApiResult>> apiResult = new ApiResult>>(); try { List where = new List(); Dictionary where_entities = new Dictionary(); if (!string.IsNullOrEmpty(filter)) { var temp_psname_where = $@" ps.Name LIKE CONCAT('%', @Filter, '%')"; where.Add(temp_psname_where); where_entities.Add("Filter", filter); } var myPowerStations = myPowerStationService.GetMyPowerStationsGroupByCity(myUser, null, where, where_entities); var siteDBNamePowerStationId = new Dictionary>(); foreach (var powerStation in myPowerStations) { siteDBNamePowerStationId.Add(powerStation.CityName, powerStation.MyPowerStations.ToList()); } apiResult.Code = "0000"; apiResult.Data = siteDBNamePowerStationId; } catch (Exception exception) { apiResult.Code = "9999"; Logger.LogError("【" + controllerName + "/" + actionName + "】"); Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message); } apiResult.Msg = errorCode.GetString(apiResult.Code); return apiResult; } public async Task> GetStationsCard(ChartInput post) { ApiResult apiResult = new ApiResult(); try { var GetPowerStationInfos = new AnalysisStationCombine(); GetPowerStationInfos = await analysisStationCombineRepository.GetPowerStationInfoList(post); apiResult.Code = "0000"; apiResult.Data = GetPowerStationInfos; } catch (Exception exception) { apiResult.Code = "9999"; Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message); apiResult.Msg = errorCode.GetString(apiResult.Code); } return apiResult; } public async Task>> GetChart(ChartInput post) { ApiResult> apiResult = new ApiResult>(); try { var GetCharts = new List(); GetCharts = await analysisStationCombineRepository.GetChart(post); apiResult.Code = "0000"; apiResult.Data = GetCharts; } catch (Exception exception) { apiResult.Code = "9999"; apiResult.Msg = errorCode.GetString(apiResult.Code); Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message); } return apiResult; } } }