public OperationResult <PaginatedList <SYS_MSGUSER> > GetMsg(string api_account, long timeStamp, string sign, string token, int onlyUnread, int pi, int ps) { if (string.IsNullOrWhiteSpace(token)) { return(new OperationResult <PaginatedList <SYS_MSGUSER> >(OperationCode.Error_Param_Empty)); } if (!_parameterValidateService.CheckTimestamp(timeStamp)) { return(new OperationResult <PaginatedList <SYS_MSGUSER> >(OperationCode.Error_TimeStamp)); } if (!TokenHelper.CheckToken(token)) { return(new OperationResult <PaginatedList <SYS_MSGUSER> >(OperationCode.Error_TokenExpiration)); } var apiAccount = _apiRepository.GetSingleByAccount(api_account); if (apiAccount == null) { return(new OperationResult <PaginatedList <SYS_MSGUSER> >(OperationCode.Error_ApiAccountNotExist)); } if (!CheckSignForGetMsg(api_account, timeStamp, sign, token, onlyUnread, pi, ps, apiAccount.Api_SecretKey)) { return(new OperationResult <PaginatedList <SYS_MSGUSER> >(OperationCode.Error_Sign)); } var theToken = TokenHelper.GetToken(token); var theCompanyId = new Guid(apiAccount.CompanyId); var user = _userRepository.GetSingleByKey(theToken.UserId); if (user == null) { return(new OperationResult <PaginatedList <SYS_MSGUSER> >(OperationCode.Error_UserNotExist)); } List <SYS_MSGUSER> data = null; int t = 0; if (onlyUnread == 1) { data = GetUnreadMsgs(user.Key.ToString(), pi, ps, out t); } else { data = QueryMsg(user.Key.ToString(), null, pi, ps, out t); } PaginatedList <SYS_MSGUSER> result = new PaginatedList <SYS_MSGUSER>(pi, ps, t, data); return(new OperationResult <PaginatedList <SYS_MSGUSER> >(OperationCode.Success, result)); }
/// <summary> /// 获取最新版本信息 /// </summary> /// <param name="api_account"></param> /// <param name="timeStamp"></param> /// <param name="sign"></param> /// <param name="appType"></param> /// <returns>OperationResult实例</returns> public OperationResult <APP_Version> GetLastVersion(string api_account, long timeStamp, string sign, string appType) { if (!_parameterValidateService.CheckTimestamp(timeStamp)) { return(new OperationResult <APP_Version>(OperationCode.Error_TimeStamp)); } var apiAccount = _apiRepository.GetSingleByAccount(api_account); if (apiAccount == null) { return(new OperationResult <APP_Version>(OperationCode.Error_ApiAccountNotExist)); } if (!checkSignForGetLastVersion(api_account, timeStamp, sign, appType, apiAccount.Api_SecretKey)) { return(new OperationResult <APP_Version>(OperationCode.Error_Sign)); } var version = GetLastVersion(appType); var result = new OperationResult <APP_Version>(OperationCode.Success); result.Entity = version; return(result); }
public OperationResult <IEnumerable <CompanyContactDetail> > GetCompanyContacts(string api_account, long timeStamp, string sign, int flag) { if (!_parameterValidateService.CheckTimestamp(timeStamp)) { return(new OperationResult <IEnumerable <CompanyContactDetail> >(OperationCode.Error_TimeStamp)); } var apiAccount = _apiRepository.GetSingleByAccount(api_account); if (apiAccount == null) { return(new OperationResult <IEnumerable <CompanyContactDetail> >(OperationCode.Error_ApiAccountNotExist)); } if (!checkSignForGetCompanyContacts(api_account, timeStamp, sign, apiAccount.Api_SecretKey, flag)) { return(new OperationResult <IEnumerable <CompanyContactDetail> >(OperationCode.Error_Sign)); } var result = new List <CompanyContactDetail>(); if (flag == 0) { result = _companyContactDetailRepository.GetAll().OrderBy(x => x.DisplayOrder).ToList(); } else { result.Add(_companyContactDetailRepository.GetAll().OrderBy(x => x.DisplayOrder).FirstOrDefault()); } return(new OperationResult <IEnumerable <CompanyContactDetail> >(OperationCode.Success, result)); }
/// <summary> /// 获取指定用户的微网信息 /// </summary> /// <param name="api_account">api账号</param> /// <param name="timeStamp">时间戳</param> /// <param name="sign">签名</param> /// <param name="username">用户名</param> /// <returns>OperationResult<MicrogridInfo>实例</returns> public OperationResult <MicrogridInfo> GetMicrogridInfoByUserId(string api_account, long timeStamp, string sign, string username) { if (!_parameterValidateService.CheckTimestamp(timeStamp)) { return(new OperationResult <MicrogridInfo>(OperationCode.Error_TimeStamp)); } var apiAccount = _apiRepository.GetSingleByAccount(api_account); if (apiAccount == null) { return(new OperationResult <MicrogridInfo>(OperationCode.Error_ApiAccountNotExist)); } if (!checkSignForGetMicrogridInfo(api_account, timeStamp, sign, username, apiAccount.Api_SecretKey)) { return(new OperationResult <MicrogridInfo>(OperationCode.Error_Sign)); } var user = _userRepository.GetSingleByUserName(username); if (user == null || !user.USERTYPE.Equals(MicrogridManagerRoleName, StringComparison.OrdinalIgnoreCase)) { return(new OperationResult <MicrogridInfo>(OperationCode.Error_UserNotExist)); } var mi = GetMicrogridInfoByUserId(user.Key); if (mi != null) { return(new OperationResult <MicrogridInfo>(OperationCode.Success, mi)); } else { return(new OperationResult <MicrogridInfo>(OperationCode.Error_NoMicrogridInfo)); } }
public OperationResult <DeviceCV> GetDeviceCV(string api_account, long timeStamp, string sign, string deviceID, string localDate) { if (!checkSignForGetDeviceCV(api_account, timeStamp, sign, deviceID, localDate)) { var result4 = new OperationResult <DeviceCV>(OperationCode.Error_Sign); result4.Entity = null; return(result4); } if (!_parameterValidateService.CheckTimestamp(timeStamp)) { var result2 = new OperationResult <DeviceCV>(OperationCode.Error_TimeStamp); result2.Entity = null; return(result2); } Guid theCompanyId; if (!_parameterValidateService.ApiAccountExist(api_account, out theCompanyId)) { var result3 = new OperationResult <DeviceCV>(OperationCode.Error_ApiAccountNotExist); result3.Entity = null; return(result3); } DeviceCV cv = new DeviceCV(); DevInfo info = _devInfoRepository.FindBy(x => x.DeviceID == deviceID).Where(x => x.Delete_Flag == 0).FirstOrDefault(); var result = new OperationResult <DeviceCV>(OperationCode.Success); if (info == null) { result = new OperationResult <DeviceCV>(OperationCode.Success); cv.Status = "Failed1"; cv.Time = null; cv.CVTotal = null; cv.CV1 = null; cv.CV2 = null; cv.CV3 = null; result.Entity = cv; return(result); } var dataLst = _devDataRepository.GetDeviceCVByDeviceID(deviceID, localDate).ToList(); if (dataLst == null || dataLst.Count == 0) { result = new OperationResult <DeviceCV>(OperationCode.Success); cv.Status = "Failed2"; cv.Time = null; cv.CVTotal = null; cv.CV1 = null; cv.CV2 = null; cv.CV3 = null; result.Entity = cv; return(result); } int num = dataLst.Count; string[] times = new string[num]; decimal[] CVTotals = new decimal[num]; decimal[] CVs1 = new decimal[num]; decimal[] CVs2 = new decimal[num]; decimal[] CVs3 = new decimal[num]; for (int i = 0; i < num; i++) { times[i] = dataLst[i].Upload_DateTime.ToString(); CVTotals[i] = dataLst[i].CV; CVs1[i] = dataLst[i].CV1 == null ? 0 : (decimal)dataLst[i].CV1; CVs2[i] = dataLst[i].CV2 == null ? 0 : (decimal)dataLst[i].CV2; CVs3[i] = dataLst[i].CV3 == null ? 0 : (decimal)dataLst[i].CV3; } result = new OperationResult <DeviceCV>(OperationCode.Success); cv.Status = "Success"; cv.Time = times; cv.CVTotal = CVTotals; cv.CV1 = CVs1; cv.CV2 = CVs2; cv.CV3 = CVs3; result.Entity = cv; return(result); }
public OperationResult AddNewComplaints(string api_account, long timeStamp, string sign, string token, string title, string description, string complaintsTyps, string email, string contactNumber, string sn, string attachment1, string attachment2, string attachment3) { if (string.IsNullOrWhiteSpace(token)) { return(new OperationResult(OperationCode.Error_Param_Empty)); } if (!_parameterValidateService.CheckTimestamp(timeStamp)) { return(new OperationResult(OperationCode.Error_TimeStamp)); } if (!TokenHelper.CheckToken(token)) { return(new OperationResult(OperationCode.Error_TokenExpiration)); } var apiAccount = _apiRepository.GetSingleByAccount(api_account); if (apiAccount == null) { return(new OperationResult(OperationCode.Error_ApiAccountNotExist)); } if (!checkSignForAddNewComplaints(api_account, timeStamp, sign, token, title, description, complaintsTyps, email, contactNumber, sn, attachment1, attachment2, attachment3, apiAccount.Api_SecretKey)) { return(new OperationResult(OperationCode.Error_Sign)); } var theNewComplaint = new Complaints { Title = title, ComplaintsType = complaintsTyps, Email = email, ContactNumber = contactNumber, SysSn = sn, Attachment = HttpUtility.UrlDecode(attachment1), Attachment3 = HttpUtility.UrlDecode(attachment3), Attachment2 = HttpUtility.UrlDecode(attachment2) }; theNewComplaint.Description = !string.IsNullOrWhiteSpace(description) ? HttpUtility.UrlDecode(description).Replace("\n", HttpUtility.HtmlEncode("<br/>")) : string.Empty; var s = _systemRepository.GetSystemBySn(sn); if (s != null) { if (!string.IsNullOrWhiteSpace(s.CountryCode)) { theNewComplaint.Area = GetCountryCode(s.CountryCode); theNewComplaint.SystemLicense = s.LicNo; theNewComplaint.SystemMinv = s.Minv; theNewComplaint.SystemPostcode = s.PostCode; } } var tk = TokenHelper.GetToken(new Guid(token)); var u = _userRepository.GetSingleByKey(tk.UserId); if (tk.UserTypes.Contains("installer")) { theNewComplaint.SystemLicense = u.LICNO; } theNewComplaint.Creator = u.USERNAME; theNewComplaint.ComplaintsProcessing.Add(new ComplaintsProcessing { CurrentStatus = ComplaintStatus.Open.ToString(), ProcessFlowNumber = 0, ProcessingTime = DateTime.Now, Processor = u.USERNAME }); if (AddNewComplaint(theNewComplaint) == null) { return(new OperationResult(OperationCode.Error_AddNewComplaintsFailed)); } SYS_USER theCustomer = null; if (tk.UserTypes.Contains("customer")) { theCustomer = u; } else if (s != null && s.UserId.HasValue) { theCustomer = _userRepository.GetSingleByKey(s.UserId.Value); } if (theCustomer != null) { var customerInfo = new CustomerInfo { ComplaintId = theNewComplaint.Key, SysSn = theNewComplaint.SysSn, CustomerContactNumber = theCustomer.CELLPHONE, CustomerCountry = GetCountryCode(theCustomer.COUNTRYCODE), CustomerEmail = theCustomer.EMAIL, ContactName = theCustomer.LINKMAN, CustomerAddress = theCustomer.ADDRESS, CustomerPostcode = theCustomer.POSTCODE, CustomerName = theCustomer.USERNAME, CreateTime = DateTime.Now }; _customerInfoRepository.Add(customerInfo); _customerInfoRepository.Save(); } return(new OperationResult(OperationCode.Success)); }
/// <summary> /// 获取最新的系统常规运行数据 /// </summary> /// <param name="sn"></param> /// <param name="username">用户名</param> /// <returns></returns> public OperationResult <PaginatedList <VT_COLDATA> > GetRunningNewData(string api_Account, long timeStamp, string sign, string sn, string token, string ipAddress) { Guid key = Guid.Empty; Guid.TryParse(token, out key); var userCache = TokenService.GetCache(key); #region 判断 if (userCache == null || userCache.ExpirationTime < DateTime.Now) { return(new OperationResult <PaginatedList <VT_COLDATA> >(OperationCode.Error_LoginFailed)); } if (userCache.ipAddress != ipAddress) { var ul = new SYS_LOG { Key = Guid.NewGuid(), CREATE_DATETIME = DateTime.Now, THREAD = OperationCode.Error_UserChangesDevice.ToString(), LEVEL = LogLevel.ERROR.ToString(), LOGGER = "Services.RunningDataService", MESSAGE = "用户更换设备", EXCEPTION = "ipAddress_1:" + userCache.ipAddress + ",ipAddress:" + ipAddress, CREATE_ACCOUNT = "", LOG_CONTENT = "" }; _sysLogService.Add(ul); _sysLogService.Save(); return(new OperationResult <PaginatedList <VT_COLDATA> >(OperationCode.Error_UserChangesDevice)); } var query = from a1 in _sys_ROLE.GetAll() join r1 in _sys_ROLEUSER.GetAll() on a1.Key equals r1.ROLEID where r1.USERID == userCache.UserId select new { userType = a1.ROLENAME }; List <string> user_Types = new List <string>(); foreach (var q in query) { user_Types.Add(q.userType); } if (!checkSignForRunningData(api_Account, timeStamp, sign, sn, token)) { string secretKey = _cryptoService.GetSecretKey(api_Account); var ul = new SYS_LOG { Key = Guid.NewGuid(), CREATE_DATETIME = DateTime.Now, THREAD = OperationCode.Error_Sign.ToString(), LEVEL = LogLevel.ERROR.ToString(), LOGGER = "Services.RunningDataService", MESSAGE = "签名错误", EXCEPTION = "api_Account:" + api_Account + ",timeStamp:" + timeStamp + ",sign:" + sign + ",token:" + token + ", sn:" + sn + ",ipAddress:" + ipAddress + ",SecretKey:" + secretKey, CREATE_ACCOUNT = "", LOG_CONTENT = "" }; _sysLogService.Add(ul); _sysLogService.Save(); return(new OperationResult <PaginatedList <VT_COLDATA> >(OperationCode.Error_Sign)); } if (!_parameterValidateService.CheckTimestamp(timeStamp)) { var ul = new SYS_LOG { Key = Guid.NewGuid(), CREATE_DATETIME = DateTime.Now, THREAD = OperationCode.Error_TimeStamp.ToString(), LEVEL = LogLevel.ERROR.ToString(), LOGGER = "Services.RunningDataService", MESSAGE = "时间戳错误", EXCEPTION = "api_Account:" + api_Account + ",timeStamp:" + timeStamp + ",sign:" + sign + ",token:" + token + ", sn:" + sn + ",ipAddress:" + ipAddress, CREATE_ACCOUNT = "", LOG_CONTENT = "" }; _sysLogService.Add(ul); _sysLogService.Save(); return(new OperationResult <PaginatedList <VT_COLDATA> >(OperationCode.Error_TimeStamp)); } if (!_parameterValidateService.ApiAccountExist(api_Account)) { var ul = new SYS_LOG { Key = Guid.NewGuid(), CREATE_DATETIME = DateTime.Now, THREAD = OperationCode.Error_ApiAccountNotExist.ToString(), LEVEL = LogLevel.ERROR.ToString(), LOGGER = "Services.RunningDataService", MESSAGE = "api账户不存在", EXCEPTION = "api_Account:" + api_Account + ",timeStamp:" + timeStamp + ",sign:" + sign + ",token:" + token + ", sn:" + sn + ",ipAddress:" + ipAddress, CREATE_ACCOUNT = "", LOG_CONTENT = "" }; _sysLogService.Add(ul); _sysLogService.Save(); return(new OperationResult <PaginatedList <VT_COLDATA> >(OperationCode.Error_ApiAccountNotExist)); } #endregion int pIndex = 1; int pSize = int.MaxValue; int totalCount = 0; PaginatedList <VT_COLDATA> coldataList = new PaginatedList <VT_COLDATA>(pIndex, pSize, null); #region 获取用户系统列表 IList <VT_SYSTEM> systems = new List <VT_SYSTEM>(); if (user_Types.Contains("customer")) { systems = GetSystemByUser(pIndex, pSize, userCache.UserId, this.CompanyId, out totalCount); } else if (user_Types.Contains("installer")) { SYS_USER user = _userRepository.GetAll().Where(x => x.Key == userCache.UserId).FirstOrDefault(); if (user != null) { systems = GetSystemByInstaller(pIndex, pSize, user.LICNO, this.CompanyId, out totalCount); } } else if (user_Types.Contains("servicer")) { systems = GetSystemByServicer(pIndex, pSize, userCache.UserId, this.CompanyId, out totalCount); } else if (user_Types.Contains("admin")) { systems = GetSystemByManager(pIndex, pSize, this.CompanyId, out totalCount); } else if (user_Types.Contains("systemmanager")) { systems = systems = GetSystemByManager(pIndex, pSize, this.CompanyId, out totalCount); } else if (user_Types.Contains("reseller")) { systems = GetSystemByReseller(pIndex, pSize, userCache.UserId, this.CompanyId, out totalCount); } else if (user_Types.Contains("servicepartner")) { systems = GetSystemByServicepartner(pIndex, pSize, userCache.UserId, this.CompanyId, out totalCount); } #endregion if (!string.IsNullOrWhiteSpace(sn)) { if (_snRepository.GetAll().Where(x => x.SN_NO == sn.Trim() && x.CompanyId == this.CompanyId && x.DELETE_FLAG == 0).FirstOrDefault() == null) { var ul = new SYS_LOG { Key = Guid.NewGuid(), CREATE_DATETIME = DateTime.Now, THREAD = OperationCode.Error_SNNotExist.ToString(), LEVEL = LogLevel.ERROR.ToString(), LOGGER = "Services.RunningDataService", MESSAGE = "sn不存在", EXCEPTION = "api_Account:" + api_Account + ",timeStamp:" + timeStamp + ",sign:" + sign + ",token:" + token + ", sn:" + sn + ",ipAddress:" + ipAddress, CREATE_ACCOUNT = "", LOG_CONTENT = "" }; _sysLogService.Add(ul); _sysLogService.Save(); return(new OperationResult <PaginatedList <VT_COLDATA> >(OperationCode.Error_SNNotExist)); } if (systems.Where(x => x.SYS_SN == sn).Count() == 0) { SYS_USER user = _userRepository.GetAll().Where(x => x.Key == userCache.UserId).FirstOrDefault(); string username = user == null ? "" : user.USERNAME; var ul = new SYS_LOG { Key = Guid.NewGuid(), CREATE_DATETIME = DateTime.Now, THREAD = OperationCode.Error_NoPermissionsToQuery.ToString(), LEVEL = LogLevel.ERROR.ToString(), LOGGER = "Services.RunningDataService", MESSAGE = "用户无此权限,调取用户:" + username, EXCEPTION = "api_Account:" + api_Account + ",timeStamp:" + timeStamp + ",sign:" + sign + ",token:" + token + ", sn:" + sn + ",ipAddress:" + ipAddress, CREATE_ACCOUNT = "", LOG_CONTENT = "" }; _sysLogService.Add(ul); _sysLogService.Save(); return(new OperationResult <PaginatedList <VT_COLDATA> >(OperationCode.Error_NoPermissionsToQuery)); } coldataList = GetRunningDataBySn(api_Account, timeStamp, sign, sn, this.CompanyId, pIndex, pSize, out totalCount); } else { coldataList = GetRunningDataByUsername(api_Account, timeStamp, sign, systems, pIndex, pSize, out totalCount); } coldataList.TotalCount = totalCount; coldataList.TotalPageCount = (int)Math.Ceiling(coldataList.TotalCount / (double)pSize); var plColdata = new OperationResult <PaginatedList <VT_COLDATA> >(OperationCode.Success); plColdata.Entity = coldataList; return(plColdata); }
/// <summary> /// 用户登录 /// </summary> /// <param name="username">用户名</param> /// <param name="password">密码</param> /// <returns></returns> public OperationResult <UserLogin> LoginForUser(string api_Account, long timeStamp, string sign, string username, string password, string ipAddress) { if (!_parameterValidateService.CheckTimestamp(timeStamp)) { return(new OperationResult <UserLogin>(OperationCode.Error_TimeStamp)); } if (!_parameterValidateService.ApiAccountExist(api_Account)) { return(new OperationResult <UserLogin>(OperationCode.Error_ApiAccountNotExist)); } if (!checkSignForUser(api_Account, timeStamp, sign, username, password)) { return(new OperationResult <UserLogin>(OperationCode.Error_Sign)); } var user = _userRepository.GetSingleByUserName(username, this.CompanyId); if (user == null || !(user.USERTYPE.Equals(MicrogridManagerRoleName, StringComparison.OrdinalIgnoreCase) || user.USERTYPE.Equals(SharerRoleName, StringComparison.OrdinalIgnoreCase) || user.USERTYPE.Equals(InstallerRoleName, StringComparison.OrdinalIgnoreCase) || user.USERTYPE.Equals(CustomerRoleName, StringComparison.OrdinalIgnoreCase))) { return(new OperationResult <UserLogin>(OperationCode.Error_UserNotExist)); } if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password)) { var result6 = new OperationResult <UserLogin>(OperationCode.Error_Param_Empty); result6.Entity = null; var ul = new SYS_LOG { Key = Guid.NewGuid(), CREATE_DATETIME = DateTime.Now, THREAD = OperationCode.Error_Param_Empty.ToString(), LEVEL = LogLevel.ERROR.ToString(), LOGGER = "Services.AlphaESSV2Service", MESSAGE = "参数为空", EXCEPTION = "api_Account:" + api_Account + ",timeStamp:" + timeStamp + ",sign:" + sign + ", username" + username + ", password:"******",ipAddress:" + ipAddress, CREATE_ACCOUNT = "", LOG_CONTENT = "" }; _sysLogService.Add(ul); _sysLogService.Save(); return(result6); } if (!isUserValid(user, password, username)) { var result5 = new OperationResult <UserLogin>(OperationCode.Error_PasswordNotMatch); result5.Entity = null; var ul = new SYS_LOG { Key = Guid.NewGuid(), CREATE_DATETIME = DateTime.Now, THREAD = OperationCode.Error_PasswordNotMatch.ToString(), LEVEL = LogLevel.ERROR.ToString(), LOGGER = "Services.AlphaESSV2Service", MESSAGE = "密码不匹配", EXCEPTION = "api_Account:" + api_Account + ",timeStamp:" + timeStamp + ",sign:" + sign + ", username" + username + ", password:"******",ipAddress:" + ipAddress, CREATE_ACCOUNT = "", LOG_CONTENT = "" }; _sysLogService.Add(ul); _sysLogService.Save(); return(result5); } UserLogin u = null; try { var query = from a1 in _sys_ROLE.GetAll() join r1 in _sys_ROLEUSER.GetAll() on a1.Key equals r1.ROLEID where r1.USERID == user.Key select new { userType = a1.ROLENAME }; string userTypes = string.Empty; foreach (var q in query) { userTypes += q.userType + ","; } if (userTypes.Length > 0) { userTypes = userTypes.Substring(0, userTypes.Length - 1); } //过期时间 DateTime expiryTime = DateTime.Now.AddMinutes(ExpiryTime); Guid token = Guid.NewGuid(); TokenService.SetCache(token, user.Key, expiryTime, ipAddress); u = new UserLogin() { userType = userTypes, token = token }; } catch (Exception ex) { var ul = new SYS_LOG { Key = Guid.NewGuid(), CREATE_DATETIME = DateTime.Now, THREAD = OperationCode.Error_Unknown.ToString(), LEVEL = LogLevel.ERROR.ToString(), LOGGER = "Services.AlphaESSV2Service", MESSAGE = "失败", EXCEPTION = ex.ToString(), CREATE_ACCOUNT = "", LOG_CONTENT = "" }; _sysLogService.Add(ul); _sysLogService.Save(); } var result = new OperationResult <UserLogin>(OperationCode.Success); result.Entity = u; return(result); }
public OperationResult <DeviceInfo> GetDeviceInfo(string api_account, long timeStamp, string sign, string deviceID) { if (!checkSignForGetDeviceInfo(api_account, timeStamp, sign, deviceID)) { var result4 = new OperationResult <DeviceInfo>(OperationCode.Error_Sign); result4.Entity = null; return(result4); } if (!_parameterValidateService.CheckTimestamp(timeStamp)) { var result2 = new OperationResult <DeviceInfo>(OperationCode.Error_TimeStamp); result2.Entity = null; return(result2); } Guid theCompanyId; if (!_parameterValidateService.ApiAccountExist(api_account, out theCompanyId)) { var result3 = new OperationResult <DeviceInfo>(OperationCode.Error_ApiAccountNotExist); result3.Entity = null; return(result3); } DeviceInfo inf = new DeviceInfo(); DevInfo info = _devInfoRepository.GetDeviceInfoByDeviceID(deviceID); DevData data = _devDataRepository.GetLastUpdateTimeByDeviceID(deviceID); if (data != null) { inf.UpdateTime = data.Upload_DateTime.ToString(); } else { inf.UpdateTime = string.Empty; inf.Status = "Failed2"; } if (info != null) { inf.DeviceID = info.DeviceID; inf.Voltage = info.Voltage; inf.TimeZone = info.TimeZone; } else { inf.DeviceID = string.Empty; inf.Voltage = 0; inf.TimeZone = string.Empty; inf.Status = "Failed1"; } if (string.IsNullOrEmpty(inf.Status)) { inf.Status = "Success"; } var result = new OperationResult <DeviceInfo>(OperationCode.Success); result.Entity = inf; return(result); }
public OperationResult <Sys_RemoteDispatch> AddRemoteDispatch(string api_Account, long timeStamp, string sign, string token, string sn, int activePower, int reactivePower, decimal soc, int status, int controlMode, string ipAddress) { Guid key = Guid.Empty; Guid.TryParse(token, out key); var userCache = TokenService.GetCache(key); bool flag = false; #region 判断 if (userCache == null || userCache.ExpirationTime < DateTime.Now) { return(new OperationResult <Sys_RemoteDispatch>(OperationCode.Error_LoginFailed)); } if (userCache.ipAddress != ipAddress) { var ul = new SYS_LOG { Key = Guid.NewGuid(), CREATE_DATETIME = DateTime.Now, THREAD = OperationCode.Error_UserChangesDevice.ToString(), LEVEL = LogLevel.ERROR.ToString(), LOGGER = "Services.RemoteDispatchService", MESSAGE = "用户更换设备", EXCEPTION = "ipAddress_1:" + userCache.ipAddress + ",ipAddress:" + ipAddress, CREATE_ACCOUNT = "", LOG_CONTENT = "" }; _sysLogService.Add(ul); _sysLogService.Save(); return(new OperationResult <Sys_RemoteDispatch>(OperationCode.Error_UserChangesDevice)); } var query = from a1 in _sys_ROLE.GetAll() join r1 in _sys_ROLEUSER.GetAll() on a1.Key equals r1.ROLEID where r1.USERID == userCache.UserId select new { userType = a1.ROLENAME }; List <string> user_Types = new List <string>(); foreach (var q in query) { user_Types.Add(q.userType); } if (!checkSignForRemoteDispatch(api_Account, timeStamp, sign, token, sn, activePower, reactivePower, soc, status, controlMode)) { string secretKey = _cryptoService.GetSecretKey(api_Account); var ul = new SYS_LOG { Key = Guid.NewGuid(), CREATE_DATETIME = DateTime.Now, THREAD = OperationCode.Error_Sign.ToString(), LEVEL = LogLevel.ERROR.ToString(), LOGGER = "Services.RemoteDispatchService", MESSAGE = "签名错误", EXCEPTION = "api_Account:" + api_Account + ",timeStamp:" + timeStamp + ",sign:" + sign + ",token:" + token + ", sn:" + sn + ",ipAddress:" + ipAddress + ",SecretKey:" + secretKey, CREATE_ACCOUNT = "", LOG_CONTENT = "" }; _sysLogService.Add(ul); _sysLogService.Save(); return(new OperationResult <Sys_RemoteDispatch>(OperationCode.Error_Sign)); } if (!_parameterValidateService.CheckTimestamp(timeStamp)) { var ul = new SYS_LOG { Key = Guid.NewGuid(), CREATE_DATETIME = DateTime.Now, THREAD = OperationCode.Error_TimeStamp.ToString(), LEVEL = LogLevel.ERROR.ToString(), LOGGER = "Services.RemoteDispatchService", MESSAGE = "时间戳错误", EXCEPTION = "api_Account:" + api_Account + ",timeStamp:" + timeStamp + ",sign:" + sign + ",token:" + token + ", sn:" + sn + ",ipAddress:" + ipAddress, CREATE_ACCOUNT = "", LOG_CONTENT = "" }; _sysLogService.Add(ul); _sysLogService.Save(); return(new OperationResult <Sys_RemoteDispatch>(OperationCode.Error_TimeStamp)); } if (!_parameterValidateService.ApiAccountExist(api_Account)) { var ul = new SYS_LOG { Key = Guid.NewGuid(), CREATE_DATETIME = DateTime.Now, THREAD = OperationCode.Error_ApiAccountNotExist.ToString(), LEVEL = LogLevel.ERROR.ToString(), LOGGER = "Services.RemoteDispatchService", MESSAGE = "api账号不存在", EXCEPTION = "api_Account:" + api_Account + ",timeStamp:" + timeStamp + ",sign:" + sign + ",token:" + token + ", sn:" + sn + ",ipAddress:" + ipAddress, CREATE_ACCOUNT = "", LOG_CONTENT = "" }; _sysLogService.Add(ul); _sysLogService.Save(); return(new OperationResult <Sys_RemoteDispatch>(OperationCode.Error_ApiAccountNotExist)); } #endregion SYS_USER user = _userRepository.GetAll().Where(x => x.Key == userCache.UserId).FirstOrDefault(); #region 获取用户系统列表 int pIndex = 1; int pSize = int.MaxValue; int totalCount = 0; IList <VT_SYSTEM> result = new List <VT_SYSTEM>(); if (user_Types.Contains("customer")) { result = GetSystemByUser(pIndex, pSize, userCache.UserId, this.CompanyId, out totalCount); } else if (user_Types.Contains("installer")) { if (user != null) { result = GetSystemByInstaller(pIndex, pSize, user.LICNO, this.CompanyId, out totalCount); } } else if (user_Types.Contains("servicer")) { return(new OperationResult <Sys_RemoteDispatch>(OperationCode.Error_NoPermissionsToQuery)); } else if (user_Types.Contains("admin")) { return(new OperationResult <Sys_RemoteDispatch>(OperationCode.Error_NoPermissionsToQuery)); } else if (user_Types.Contains("systemmanager")) { return(new OperationResult <Sys_RemoteDispatch>(OperationCode.Error_NoPermissionsToQuery)); } else if (user_Types.Contains("reseller")) { result = GetSystemByReseller(pIndex, pSize, userCache.UserId, this.CompanyId, out totalCount); } else if (user_Types.Contains("servicepartner")) { return(new OperationResult <Sys_RemoteDispatch>(OperationCode.Error_NoPermissionsToQuery)); } if (result == null || result.Count == 0) { return(new OperationResult <Sys_RemoteDispatch>(OperationCode.Error_NoPermissionsToQuery)); } #endregion if (!string.IsNullOrWhiteSpace(sn)) { if (_snRepository.GetAll().Where(x => x.SN_NO == sn.Trim() && x.CompanyId == this.CompanyId && x.DELETE_FLAG == 0).FirstOrDefault() == null) { var ul = new SYS_LOG { Key = Guid.NewGuid(), CREATE_DATETIME = DateTime.Now, THREAD = OperationCode.Error_SNNotExist.ToString(), LEVEL = LogLevel.ERROR.ToString(), LOGGER = "Services.RemoteDispatchService", MESSAGE = "sn不存在", EXCEPTION = "api_Account:" + api_Account + ",timeStamp:" + timeStamp + ",sign:" + sign + ",token:" + token + ", sn:" + sn + ",ipAddress:" + ipAddress, CREATE_ACCOUNT = "", LOG_CONTENT = "" }; _sysLogService.Add(ul); _sysLogService.Save(); return(new OperationResult <Sys_RemoteDispatch>(OperationCode.Error_SNNotExist)); } if (result.Where(x => x.SYS_SN == sn).Count() == 0) { string username = user == null ? "" : user.USERNAME; var ul = new SYS_LOG { Key = Guid.NewGuid(), CREATE_DATETIME = DateTime.Now, THREAD = OperationCode.Error_NoPermissionsToQuery.ToString(), LEVEL = LogLevel.ERROR.ToString(), LOGGER = "Services.RemoteDispatchService", MESSAGE = "用户无此权限,调取用户:" + username, EXCEPTION = "api_Account:" + api_Account + ",timeStamp:" + timeStamp + ",sign:" + sign + ",token:" + token + ", sn:" + sn + ",ipAddress:" + ipAddress, CREATE_ACCOUNT = "", LOG_CONTENT = "" }; _sysLogService.Add(ul); _sysLogService.Save(); return(new OperationResult <Sys_RemoteDispatch>(OperationCode.Error_NoPermissionsToQuery)); } Sys_RemoteDispatch rd = new Sys_RemoteDispatch(); rd.Key = Guid.NewGuid(); rd.SN = sn; rd.UserName = user.USERNAME; rd.ActivePower = activePower; rd.ReactivePower = reactivePower; rd.SOC = soc; rd.Status = status; rd.ControlMode = controlMode; rd.DELETE_FLAG = 0; rd.CreateTime = DateTime.Now; try { _remotedispatchRepository.Add(rd); _remotedispatchRepository.Save(); flag = true; } catch { flag = false; } } else { if (user != null) { IList <Sys_RemoteDispatch> rDList = new List <Sys_RemoteDispatch>(); foreach (var item in result) { Sys_RemoteDispatch rd = new Sys_RemoteDispatch(); rd.Key = Guid.NewGuid(); rd.SN = item.SYS_SN; rd.UserName = user.USERNAME; rd.ActivePower = activePower; rd.ReactivePower = reactivePower; rd.SOC = soc; rd.Status = status; rd.ControlMode = controlMode; rd.DELETE_FLAG = 0; rd.CreateTime = DateTime.Now; rDList.Add(rd); } try { _remotedispatchRepository.AddBulk(rDList); _remotedispatchRepository.Save(); flag = true; } catch { flag = false; } } } if (flag) { var ul = new SYS_LOG { Key = Guid.NewGuid(), CREATE_DATETIME = DateTime.Now, THREAD = OperationCode.Success.ToString(), LEVEL = LogLevel.INFO.ToString(), LOGGER = "Services.RemoteDispatchService", MESSAGE = "命令发送成功", EXCEPTION = "api_Account:" + api_Account + ",timeStamp:" + timeStamp + ",sign:" + sign + ",token:" + token + ", sn:" + sn + ",ipAddress:" + ipAddress + ",activePower:" + activePower + ",reactivePower:" + reactivePower + ",soc:" + soc + ",status:" + status + ",controlMode:" + controlMode, CREATE_ACCOUNT = user.USERNAME, LOG_CONTENT = "" }; _sysLogService.Add(ul); _sysLogService.Save(); return(new OperationResult <Sys_RemoteDispatch>(OperationCode.Success)); } else { var ul = new SYS_LOG { Key = Guid.NewGuid(), CREATE_DATETIME = DateTime.Now, THREAD = OperationCode.Error_SendCommandFailed.ToString(), LEVEL = LogLevel.ERROR.ToString(), LOGGER = "Services.RemoteDispatchService", MESSAGE = "命令发送失败", EXCEPTION = "api_Account:" + api_Account + ",timeStamp:" + timeStamp + ",sign:" + sign + ",token:" + token + ", sn:" + sn + ",ipAddress:" + ipAddress, CREATE_ACCOUNT = "", LOG_CONTENT = "" }; _sysLogService.Add(ul); _sysLogService.Save(); return(new OperationResult <Sys_RemoteDispatch>(OperationCode.Error_SendCommandFailed)); } }
public async Task <HttpResponseMessage> FileUpload(/*ExternalFileUploadRequestModel req*/) { var token = HttpContext.Current.Request.Params["Token"]; var timestamp = Convert.ToInt64(HttpContext.Current.Request.Params["timestamp"]); var sign = HttpContext.Current.Request.Params["sign"]; var api_account = HttpContext.Current.Request.Params["api_account"]; if (string.IsNullOrWhiteSpace(HttpContext.Current.Request.Params["Token"]) || string.IsNullOrWhiteSpace(HttpContext.Current.Request.Params["timestamp"]) || string.IsNullOrWhiteSpace(HttpContext.Current.Request.Params["sign"]) || string.IsNullOrWhiteSpace(HttpContext.Current.Request.Params["api_account"])) { return(Request.CreateResponse(HttpStatusCode.OK, new ExternalFileUploadResponseModel { ReturnCode = (int)OperationCode.Error_Param_Empty })); } if (string.IsNullOrWhiteSpace(token)) { return(Request.CreateResponse(HttpStatusCode.OK, new ExternalFileUploadResponseModel { ReturnCode = (int)OperationCode.Error_Param_Empty })); } if (!_parameterValidateService.CheckTimestamp(timestamp)) { return(Request.CreateResponse(HttpStatusCode.OK, new ExternalFileUploadResponseModel { ReturnCode = (int)OperationCode.Error_TimeStamp })); } if (!TokenHelper.CheckToken(token)) { return(Request.CreateResponse(HttpStatusCode.OK, new ExternalFileUploadResponseModel { ReturnCode = (int)OperationCode.Error_TokenExpiration })); } var apiAccount = _apiService.GetByAccount(api_account); if (apiAccount == null) { return(Request.CreateResponse(HttpStatusCode.OK, new ExternalFileUploadResponseModel { ReturnCode = (int)OperationCode.Error_ApiAccountNotExist })); } // Check whether the POST operation is MultiPart? if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } // Prepare CustomMultipartFormDataStreamProvider in which our multipart form // data will be loaded. string fileSaveLocation = System.Configuration.ConfigurationManager.AppSettings["filesavelocation"] + DateTime.Now.ToString("yyyyMM"); string fileSaveLogicalLocation = "~/App_Data/" + DateTime.Now.ToString("yyyyMM"); Directory.CreateDirectory(fileSaveLocation); AlphaEssMultipartFormDataStreamProvider provider = new AlphaEssMultipartFormDataStreamProvider(fileSaveLocation); //List<string> files = new List<string>(); if (Request.Content.Headers.ContentLength > 10485760) { return(Request.CreateResponse(HttpStatusCode.OK, new ExternalFileUploadResponseModel() { ReturnCode = (int)OperationCode.Error_FileIsTooLarge })); } try { // Read all contents of multipart message into CustomMultipartFormDataStreamProvider. await Request.Content.ReadAsMultipartAsync(provider); //foreach (MultipartFileData file in provider.FileData) //{ var result = new ExternalFileUploadResponseModel() { ReturnCode = (int)OperationCode.Success }; result.FilePath = Path.Combine(fileSaveLogicalLocation, Path.GetFileName(provider.FileData[0].LocalFileName)); //} return(Request.CreateResponse(HttpStatusCode.OK, result)); } catch (Exception exc) { return(Request.CreateResponse(HttpStatusCode.OK, new ExternalFileUploadResponseModel { ReturnCode = (int)OperationCode.Error_Unknown })); } }