Ejemplo n.º 1
0
 private void ThrowApiResultException(IApiResult result)
 {
     if (result.StatusCode != 0)
     {
         throw new Exceptions.ApiResultException(result.StatusCode, result.Message);
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 修改用户密码
 /// </summary>
 /// <param name="arg"></param>
 /// <returns></returns>
 public Task <IApiResult> UpdateUserPwd(P_Users.P_UpdatePwd arg)
 {
     return(Task.Run(() =>
     {
         IApiResult ar = new IApiResult();
         try
         {
             using (DAL.CarRentEntities db = new DAL.CarRentEntities())
             {
                 var us = db.Users.Where(u => u.UserID == arg.userid).FirstOrDefault();
                 if (us != null && us.Password == arg.old_userpwd)
                 {
                     us.Password = arg.new_userpwd;
                     db.SaveChanges();
                     ar.message = "success!";
                 }
                 else
                 {
                     ar.code = Interface.StatusCode.parameterError;
                     ar.message = "Old password error";
                 }
             }
         }
         catch (Exception ex)
         {
             Log.Error(this, ex);
             ar.code = Interface.StatusCode.error;
             ar.message = ex.Message;
         }
         return ar;
     }));
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 生成一个标准返回对象
 /// </summary>
 /// <param name="request">请求对象</param>
 /// <param name="result">返回内容</param>
 /// <param name="statusCode">HTTP状态码</param>
 /// <returns>HttpResponseMessage对象</returns>
 public static ApiResponseMessage ToResponse(this HttpRequestMessage request, IApiResult result, HttpStatusCode statusCode = HttpStatusCode.OK)
 {
     return(new ApiResponseMessage(statusCode, result)
     {
         RequestMessage = request
     });
 }
Ejemplo n.º 4
0
 public Task <IApiResult> GetGeofenceList(P_OnlyOneID arg)
 {
     return(Task.Run(() =>
     {
         IApiResult ar = new IApiResult();
         try
         {
             using (DAL.CarRentEntities db = new DAL.CarRentEntities())
             {
                 var geos = from g in db.GeoFence
                            where g.UserID == arg.id && g.Deleted == false
                            select new { g.GeofenceID, g.FenceName, g.Created, g.Description };
                 var list = geos.ToList();
                 ar.result = list;
                 ar.message = $"共查询到{list.Count}条数据.";
             }
         }
         catch (Exception ex)
         {
             Log.Error(this, ex);
             ar.message = ex.Message;
             ar.code = Interface.StatusCode.error;
         }
         return ar;
     }));
 }
Ejemplo n.º 5
0
        /// <summary>
        /// 根据消息ID删除一条报警消息
        /// </summary>
        /// <param name="arg"></param>
        /// <returns></returns>
        public Task <IApiResult> DelMessage(P_Message.P_DelMessage arg)
        {
            return(Task.Run(() =>
            {
                IApiResult ar = new IApiResult();
                try
                {
                    //DAL.ExceptionMessage dal = new ExceptionMessage()
                    //{
                    //    ExceptionID = arg.exceptionid,

                    //};
                    using (DAL.CarRentEntities db = new CarRentEntities())
                    {
                        var em = db.ExceptionMessage.First(e => e.ExceptionID == arg.exceptionid);
                        em.Deleted = 1;
                        //db.ExceptionMessage.Delete(e => e.ExceptionID == arg.ExceptionID);

                        //var context= db.ExceptionMessage.Attach(dal);//将数据交给EF容器处理
                        // context.Deleted = 1;
                        // db.ExceptionMessage.Remove(dal);
                        int count = db.SaveChanges();
                        ar.message = $"delete{count}a data success!";
                        ar.result = new { url = "" };
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(this, ex);
                    ar.code = StatusCode.error;
                    ar.message = ex.Message;
                }
                return ar;
            }));
        }
Ejemplo n.º 6
0
        internal static void ActionResultAsserts(IApiResult apiResult, int expected)
        {
            const string expectedKey   = "Result";
            const string expectedValue = "OK";

            ResultAssertsWithValue(apiResult, expected, expectedKey, expectedValue);
        }
Ejemplo n.º 7
0
 /// <summary>
 /// 删除一条设备记录
 /// </summary>
 /// <param name="arg"></param>
 /// <returns></returns>
 public Task <IApiResult> DelDevice(P_Devices.P_DelDevice arg)
 {
     return(Task.Run(() =>
     {
         IApiResult ar = new IApiResult();
         try
         {
             using (DAL.CarRentEntities db = new CarRentEntities())
             {
                 var de = db.Devices.First(d => d.DeviceID == arg.id);
                 de.Deleted = true;
                 int count = db.SaveChanges();
                 ar.message = $"delete{count} data success!";
                 ar.result = new { url = "" };
             }
         }
         catch (Exception ex)
         {
             Log.Error(this, ex);
             ar.code = Interface.StatusCode.error;
             ar.message = ex.Message;
         }
         return ar;
     }));
 }
Ejemplo n.º 8
0
 public Task <IApiResult> GetGeofenceByID(P_OnlyOneID arg)
 {
     return(Task.Run(() => {
         IApiResult ar = new IApiResult();
         try
         {
             using (DAL.CarRentEntities db = new DAL.CarRentEntities())
             {
                 var query = from g in db.GeoFence
                             join u in db.Users
                             on g.UserID equals u.UserID
                             where g.GeofenceID == arg.id
                             select new { g.GeofenceID, g.FenceName, g.FenceType, g.UserID, g.Bounds, u.UserName, g.Created };
                 ar.result = query.FirstOrDefault();
                 ar.result = ar.result ?? new { };
                 ar.message = "success!";
                 return ar;
             }
         }
         catch (Exception ex)
         {
             ar.code = StatusCode.error;
             ar.message = ex.Message;
             Log.Error(this, ex);
         }
         return ar;
     }));
 }
Ejemplo n.º 9
0
        /// <summary>
        /// 批量删除消息记录
        /// </summary>
        /// <param name="arg"></param>
        /// <returns></returns>
        public Task <IApiResult> DelsMessages(P_Message.P_DelsMessages arg)
        {
            return(Task.Run(() =>
            {
                IApiResult ar = new IApiResult();
                try
                {
                    ExceptionMessage em = new ExceptionMessage();

                    using (DAL.CarRentEntities db = new CarRentEntities())
                    {
                        int count = db.Database.ExecuteSqlCommand("update ExceptionMessage set Deleted=1 where ExceptionID in(" + arg.id + ")");

                        ar.message = $"delete {count} data success!";
                        ar.result = new { url = "reload" };
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(this, ex);
                    ar.code = StatusCode.error;
                    ar.message = ex.Message;
                }
                return ar;
            }));
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 修改设备信息
        /// </summary>
        /// <param name="arg"></param>
        /// <returns></returns>
        public Task <IApiResult> UpdateDeviceInfo(P_Devices.P_UpdateDeviceInfo arg)
        {
            return(Task.Run(() =>
            {
                IApiResult ar = new IApiResult();
                try
                {
                    DAL.Devices d = new DAL.Devices();

                    d.DeviceID = arg.deviceid;
                    using (DAL.CarRentEntities db = new CarRentEntities())
                    {
                        var device = db.Devices.Find(arg.deviceid);
                        device.DeviceName = arg.devicename;
                        device.Description = arg.description;
                        device.GroupID = arg.groupid;
                        db.SaveChanges();//保存至数据库中
                        ar.message = "Device information is modified successfully";
                        ar.result = new { url = "reload" };
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(this, ex);
                    ar.code = Interface.StatusCode.error;
                    ar.message = ex.Message;
                }
                return ar;
            }));
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 供移动端调用
        /// </summary>
        /// <param name="dl"></param>
        /// <returns></returns>
        //public async Task<IApiResult> GetDeviceList(Models.Parameter.PUsersByUserID user)
        //{
        //    return await Task.Run(() => {
        //        ApiResult hr = new IApiResult();
        //        string strSql = @"select d.DeviceID,d.SerialNumber, case when DeviceName='' then d.SerialNumber else DeviceName end DeviceName,l.LastCommunication ,l.DataContext,l.Speed,d.GroupID,d.HireExpireDate,datediff(MI,StopStartUtcDate,serverutcdate) StopTime,
        //                        (select COUNT(-1) from ExceptionMessage e where e.Deleted=0 and e.DeviceID=d.DeviceID)ExceptionCount,l.OLat Lat,l.OLng Lng,di.DataText as Model,case when di.AccountID=2 then 7 else di.SortOrder end as OffLineMinute
        //                        from devices d
        //                        left join lklocation l on l.DeviceID = d.DeviceID inner join Dictionary di on di.DataValue=d.Model
        //                        where d.UserID = 7 and d.deleted = 0
        //                        group by d.DeviceID,d.SerialNumber,d.DeviceName,l.DataContext,l.Speed ,d.GroupID,l.LastCommunication,d.HireExpireDate,StopStartUtcDate,serverutcdate,l.OLat,l.OLng,di.DataText,d.ServerID2,di.SortOrder,di.AccountID
        //                        order by  d.DeviceName collate Chinese_PRC_CS_AS_KS_WS asc";
        //        using (System.Data.IDbConnection conn = new SqlConnection(connectionString))
        //        {
        //            var list = conn.QueryAsync<Models.Entity.Monitor.DeviceList>(strSql, new { UserID = user.userid }).Result.ToList();
        //            list.ForEach(item => {
        //                try
        //                {
        //                    string IsStop = "1"; //运动
        //                    if (item.Speed < 7.5) //速度 小于7.5 的过滤掉
        //                    {
        //                        item.Speed = 0.00;
        //                        IsStop = "0"; // 停止
        //                    }

        //                    string[] ContextList = (item.DataContext ?? "0-0-0-0").Split('-');
        //                    if (ContextList.Length == 1)
        //                    {
        //                        item.DataContext = "0-0-0-0-" + item.DataContext;
        //                        ContextList = item.DataContext.Split('-');
        //                    }
        //                    item.Status = GetDevicesStatus(item.LastCommunication, item.HireExpireDate, item.OffLineMinute);
        //                    int statusmin = 0;
        //                    if (item.Status == 2)
        //                    {
        //                        statusmin = item.LastCommunication == default(DateTime) ? 0 : (DateTime.Now - item.LastCommunication).TotalMinutes.ToString("0").toInt();
        //                    }
        //                    else if (item.Status == 4)
        //                    {
        //                        statusmin = (DateTime.Now - item.HireExpireDate).TotalMinutes.ToString("0").toInt();
        //                    }
        //                    else if (item.Status == 1 && IsStop == "0")
        //                    {
        //                        statusmin = item.StopTime ?? 0;
        //                    }
        //                    item.OffLineMinute = null;
        //                    item.GpsStatusMinute = statusmin;
        //                }
        //                catch (Exception ex)
        //                {
        //                    Log.Error(this, ex);
        //                }
        //            });
        //            hr.result = list;
        //            hr.message = "查询成功.";
        //        }

        //        return hr;
        //    });
        //}

        public async Task <IApiResult> GetDevicesList(Models.Parameter.P_Users.P_UsersByUserID dl)
        {
            return(await Task.Run(() =>
            {
                IApiResult hr = new IApiResult();

                //count(e.ExceptionID) ExceptionCount left join ExceptionMessage e on e.DeviceID = d.deviceid

                string strSql = @"select d.DeviceID,d.SerialNumber,d.DeviceName,ISNULL(g.GroupID,-1) GroupID, ISNULL(GroupName,'Default')GroupName, d.UserID, Username,l.LastCommunication, 
                                datediff(MI,l.LastCommunication, getdate()) status,Speed,l.DataContext,l.Course,d.Icon
                                ,DATEADD(HH,8, l.DeviceUtcDate)DeviceUtcDate,datediff(MI,StopStartUtcDate,serverutcdate) StopTime,d.CarImg,d.Model,di.DataText, DATEDIFF(mi,l.lastcommunication,getdate()) OfflineTime,
                                l.DataType,DATEADD(HH,8 ,l.StopStartUtcDate)StopStartUtcDate,d.HireExpireDate,l.OLat Lat,l.OLng Lng,case when di.AccountID=2 then 7 else di.SortOrder end as offLineMi
                                from Devices d full join Groups g on g.GroupID=d.GroupID left join LKLocation l on l.DeviceID = d.DeviceID left join Dictionary di on d.Model=di.DataValue
                                where  (g.UserID = @UserID or d.UserID=@UserID) and d.Deleted !=1 order by g.GroupID desc, d.DeviceName collate Chinese_PRC_CS_AS_KS_WS  asc, StopTime, [status],OfflineTime desc ";
                using (System.Data.IDbConnection conn = new SqlConnection(connectionString))
                {
                    var list = conn.QueryAsync <Models.Entity.Monitor.DevicesList>(strSql, new { UserID = dl.userid }).Result.ToList();
                    list.ForEach((item) =>
                    {
                        if (Mgoo.CarRent.Position.ZCChinaLocation.InOutChina(item.Lat, item.Lng))
                        {
                            Position.Point point = Position.PositionUtil.gps84_To_Gcj02(item.Lat, item.Lng);
                            item.Lng = point.Lng;
                            item.Lat = point.Lat;
                        }
                    });
                    hr.result = list;
                    hr.message = $"一共查询到{list.Count}条数据.";
                }
                return hr;
            }));
        }
Ejemplo n.º 12
0
 /// <summary>
 /// 修改个人信息
 /// </summary>
 /// <param name="arg"></param>
 /// <returns></returns>
 public Task <IApiResult> UpdateUsersInfo(P_Users.P_UpdateUsersInfo arg)
 {
     return(Task.Run(() =>
     {
         IApiResult hr = new IApiResult();
         try
         {
             //DAL.Users user = new DAL.Users();
             //user.UserID = userInfo.UserID;
             using (DAL.CarRentEntities db = new DAL.CarRentEntities())
             {
                 var u = db.Users.Find(arg.userid);
                 u.UserName = arg.username;
                 u.CellPhone = arg.phone;
                 u.FirstName = arg.contact;
                 u.PrimaryEmail = arg.email;
                 u.Address1 = arg.address;
                 u.UpdateTime = DateTime.Now;
                 u.ActivationCount = arg.price * 100;
                 db.SaveChanges();
             }
             hr.message = "User information is modified successfully";
             hr.result = new { url = "reload" };
         }
         catch (Exception ex)
         {
             Log.Error(this, ex);
             hr.code = StatusCode.error;
             hr.message = ex.Message;
         }
         return hr;
     }));
 }
Ejemplo n.º 13
0
        private void HandleOnParkingsRefreshed(IApiResult <List <IParking> > apiResult)
        {
            if (apiResult.Error)
            {
                return;
            }

            var parking = apiResult.Result.SingleOrDefault(p => p.Id == Parking.Id);

            if (parking == null)
            {
                return;
            }

            if (parking.LastUpdateDate == Parking.LastUpdateDate)
            {
                return;
            }

            var parkingViewModel = BindingContext as ParkingViewModel;

            if (parkingViewModel == null)
            {
                return;
            }

            parkingViewModel.Update(parking);
            UpdateFreePlacesCountColorText(parkingViewModel);

            Parking = parking;
        }
Ejemplo n.º 14
0
 public Task <IApiResult> GetListSimple()
 {
     return(Task.Run(() =>
     {
         IApiResult ar = new IApiResult();
         try
         {
             using (DAL.CarRentEntities db = new DAL.CarRentEntities())
             {
                 var query = from u in db.Users
                             where u.Deleted == false && (u.ParentID == userInfo.UserID || u.UserID == userInfo.UserID)
                             select new { u.UserID, u.UserName };
                 var list = query.ToList();
                 ar.result = list;
                 ar.message = $"There are {list.Count} data";
             }
         }
         catch (Exception ex)
         {
             Log.Error(this, ex);
             ar.message = ex.Message;
             ar.code = StatusCode.error;
         }
         return ar;
     }));
 }
Ejemplo n.º 15
0
 public Task <IApiResult> ProofReview(P_OnlyOneID arg)
 {
     return(Task.Run(() =>
     {
         IApiResult ar = new IApiResult();
         try
         {
             using (DAL.CarRentEntities db = new DAL.CarRentEntities())
             {
                 var rr = db.RechargeRecord.Where(r => r.RID == arg.id && r.IsCheck == false).FirstOrDefault();
                 var user = db.Users.First(u => u.UserID == rr.UserID);
                 if (rr != null)
                 {
                     rr.IsCheck = true;
                     rr.CheckTime = DateTime.Now;
                     var money = user.MoneyCount;
                     user.MoneyCount = money + rr.Money;
                     db.SaveChanges();
                 }
                 ar.message = "Has been reviewed.";
             }
         }
         catch (Exception ex)
         {
             Log.Error(this, ex);
             ar.message = ex.Message;
             ar.code = StatusCode.error;
         }
         return ar;
     }));
 }
Ejemplo n.º 16
0
        /// <summary>
        /// 删除子用户
        /// </summary>
        /// <param name="arg"></param>
        /// <returns></returns>
        public Task <IApiResult> DelUserInfo(P_Users.P_DelUser arg)
        {
            return(Task.Run(() => {
                IApiResult ar = new IApiResult();
                try
                {
                    using (DAL.CarRentEntities db = new DAL.CarRentEntities())
                    {
                        DAL.Users us = new DAL.Users();
                        var res = db.Users.First(u => u.UserID == arg.userid);
                        res.Deleted = true;
                        int count = db.SaveChanges();
                        ar.message = $"delete{count}a data success!";
                        ar.result = new { url = "" };
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(this, ex);
                    ar.code = StatusCode.error;
                    ar.message = ex.Message;
                }

                return ar;
            }));
        }
Ejemplo n.º 17
0
 /// <summary>
 /// 加载下拉框分组内容
 /// </summary>
 /// <returns></returns>
 public Task <IApiResult> GetGroupListSimple()
 {
     return(Task.Run(() =>
     {
         IApiResult ar = new IApiResult();
         try
         {
             using (DAL.CarRentEntities db = new DAL.CarRentEntities())
             {
                 var query = from g in db.Groups
                             where g.Deleted == false && g.UserID == LoginUser.userInfo.UserID
                             select new
                 {
                     g.GroupID,
                     g.GroupName
                 };
                 var list = query.ToList();
                 ar.result = list;
                 ar.message = $"There are {list.Count} data";
             }
         }
         catch (Exception ex)
         {
             Log.Error(this, ex);
             ar.message = ex.Message;
             ar.code = StatusCode.error;
         }
         return ar;
     }));
 }
Ejemplo n.º 18
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="result"></param>
 /// <returns></returns>
 public void SetResult(IApiResult result)
 {
     this.message    = result.message;
     this.errorCode  = result.errorCode;
     this.statusCode = result.statusCode;
     this.success    = result.success;
 }
Ejemplo n.º 19
0
 public Task <IApiResult> DelGeofence(P_OnlyOneID arg)
 {
     return(Task.Run(() =>
     {
         IApiResult ar = new IApiResult();
         try
         {
             using (DAL.CarRentEntities db = new DAL.CarRentEntities())
             {
                 DAL.GeoFence gf = new DAL.GeoFence()
                 {
                     GeofenceID = arg.id
                 };
                 db.GeoFence.Attach(gf);
                 db.GeoFence.Remove(gf);
                 var i = db.SaveChanges();
                 ar.message = $"Deleted {i} data";
             }
         }
         catch (Exception ex)
         {
             ar.message = ex.Message;
             ar.code = Interface.StatusCode.error;
         }
         return ar;
     }));
 }
Ejemplo n.º 20
0
        internal static void ResultAsserts(IApiResult apiResult, int expected, string expectedKey)
        {
            ResultAsserts(apiResult, expected);
            var actual           = apiResult.ResultList.Count;
            var apiResultElement = apiResult.ResultList.ElementAt(actual - 1);

            StringAssert.Contains(expectedKey, apiResultElement.Key);
        }
Ejemplo n.º 21
0
        public void ConstructorShouldFailWhenApiResultIsNull()
        {
            //Arrange
            IApiResult apiResult = null;

            //Act
            var controller = new OperatorActivitiesController(apiResult);
        }
Ejemplo n.º 22
0
        internal static void ResultAssertsWithValue(IApiResult apiResult, int expected, string expectedKey, string expectedValue)
        {
            var actual = apiResult.ResultList.Count;

            Assert.AreEqual(expected, actual);
            StringAssert.Contains(expectedKey, apiResult.Key);
            StringAssert.Contains(expectedValue, apiResult.Value);
        }
Ejemplo n.º 23
0
        public Task <IApiResult> GetDevice(P_Devices.PDevicesByDeviceID arg)
        {
            return(Task.Run(() =>
            {
                IApiResult hr = new IApiResult();
                try
                {
                    using (CarRentEntities cre = new CarRentEntities())
                    {
                        Func <double, double, bool> inoutChina = (lat, lng) => Mgoo.CarRent.Position.ZCChinaLocation.InOutChina(Convert.ToDouble(lat), Convert.ToDouble(lng));

                        var devs = from d in cre.Devices
                                   join l in cre.LKLocation
                                   on d.DeviceID equals l.DeviceID
                                   into dl
                                   from dli in dl.DefaultIfEmpty()
                                   where d.DeviceID == arg.deviceid && d.Deleted == false
                                   // let po =   new Position.Point(Convert.ToDouble(dli.OLat ?? -1.00m), Convert.ToDouble(dli.OLng ?? -1.00m))
                                   //let isChina = inoutChina(po.Lat, po.Lng)
                                   //let point = isChina ? new Position.Point(po.Lat, po.Lng) : Position.PositionUtil.gps84_To_Gcj02(po.Lat, po.Lng)
                                   select new Models.Return.R_Devices.GetDevice_Result
                        {
                            DeviceID = d.DeviceID,
                            DeviceName = d.DeviceName,
                            SerialNumber = d.SerialNumber,
                            Status = d.Status,
                            DataContext = dli.DataContext ?? "",
                            Lat = dli.OLat ?? -1.00m,
                            Lng = dli.OLng ?? -1.00m,
                            Speed = dli.Speed ?? default(decimal),
                            LastCommunication = dli.LastCommunication == null ? default(DateTime) : dli.LastCommunication,
                            Course = dli.Course ?? default(decimal),
                            IsStop = dli.IsStop ?? default(int)
                        };
                        var list = devs.ToList();
                        list.ForEach((item) =>
                        {
                            //如果是在中国大陆则需要转换一下坐标
                            if (Position.ZCChinaLocation.InOutChina(Convert.ToDouble(item.Lat), Convert.ToDouble(item.Lng)))
                            {
                                Position.Point point = Position.PositionUtil.gps84_To_Gcj02(Convert.ToDouble(item.Lat), Convert.ToDouble(item.Lng));
                                item.Lng = Convert.ToDecimal(point.Lng);
                                item.Lat = Convert.ToDecimal(point.Lat);
                            }
                        });
                        hr.result = list;
                        hr.message = $"查询到{list.Count}条数据.";
                    }
                }
                catch (Exception ex)
                {
                    hr.message = ex.Message;
                    hr.code = StatusCode.error;
                    Log.Error(this, ex);
                }
                return hr;
            }));
        }
Ejemplo n.º 24
0
 /// <summary>
 /// 获取供应商列表
 /// </summary>
 /// <param name="arg"></param>
 /// <returns></returns>
 public async Task <IApiResult> GetList(P_Users.P_GetUserListPage arg)
 {
     return(await Task.Run(() =>
     {
         IApiResult ar = new IApiResult();
         var userid = userInfo.UserID;
         try
         {
             using (DAL.CarRentEntities db = new DAL.CarRentEntities())
             {
                 var query = from u in db.Users
                             where u.ParentID == userid && u.Deleted == false
                             select new Models.Return.R_Users.GetUsersListPage_Result.GetUsersListPage_List
                 {
                     UserID = u.UserID,
                     UserName = u.UserName,
                     LoginName = u.LoginName,
                     Contact = u.FirstName ?? "",
                     CellPhone = u.CellPhone ?? "",
                     Price = u.ActivationCount,
                     AllDeviceCount = u.AllDeviceCount,
                     Created = u.Created,
                     Address = u.Address1 ?? ""
                 };
                 if (arg.start_date != null)
                 {
                     query = query.Where(u => u.Created >= arg.start_date);
                 }
                 if (arg.end_date != null)
                 {
                     query = query.Where(u => u.Created <= arg.end_date);
                 }
                 if (!string.IsNullOrEmpty(arg.keyword))
                 {
                     query = query.Where(u => u.UserName.Contains(arg.keyword) || u.LoginName.Contains(arg.keyword) || u.Contact.Contains(arg.keyword) || u.CellPhone.Contains(arg.keyword));
                 }
                 int index = (arg.p - 1) * arg.pagesize;
                 var total = query.Count();
                 var list = query.OrderBy(u => u.UserID).Skip(index).Take(arg.pagesize).ToList();
                 list.ForEach(item => item.RowIndex = ++index);
                 ar.result = new
                 {
                     total = total,
                     pages = Math.Ceiling(Convert.ToDecimal(total / Convert.ToDouble(arg.pagesize))),
                     list = list,
                 };
                 ar.message = $"There are {total} data";
             }
         }
         catch (Exception ex)
         {
             Log.Error(this, ex);
             ar.code = StatusCode.error;
             ar.message = ex.Message;
         }
         return ar;
     }));
 }
 /// <summary>
 /// 处理未登录的请求
 /// </summary>
 /// <param name="ctx"></param>
 /// <param name="result"></param>
 /// <returns></returns>
 private bool HandleUnauthorizedRequest(HttpActionContext ctx, out IApiResult result)
 {
     if (this.UnauthorizedRequestHandler != null)
     {
         result = this.UnauthorizedRequestHandler.Handle(ctx);
         return(true);
     }
     result = null;
     return(false);
 }
 /// <summary>
 /// 处理异常
 /// </summary>
 /// <param name="exception"></param>
 /// <param name="result"></param>
 /// <returns></returns>
 private bool HandleException(Exception exception, out IApiResult result)
 {
     if (this.ExceptionHandler != null)
     {
         result = this.ExceptionHandler.Handle(exception);
         return(true);
     }
     result = null;
     return(false);
 }
Ejemplo n.º 27
0
        public void ConstructorShouldFailWhenApiResultNull()
        {
            // Arrange
            IApiResult apiResult = null;
            // Act
            Action ctor = () => { new WorkOrdersController(apiResult); };

            // Assert
            ctor.Should().Throw <ArgumentNullException>();
        }
        public void ConstructorShouldFailWhenMediatorIsNull()
        {
            // Arrange
            IApiResult apiResult = null;

            // Act
            Action ctor = () => { new TransportTypesController(apiResult); };

            // Assert
            ctor.Should().Throw <ArgumentNullException>().WithMessage($"*{nameof(apiResult)}*");
        }
Ejemplo n.º 29
0
 public static void WaitForTaskToComplete(IApiResult apiResponse, StatusDelegate getStatus)
 {
     var value = apiResponse.Value;
     var complete = 0;
     while (complete < 100)
     {
         var callApi = getStatus(value);
         complete = int.Parse(callApi.Value);
         Thread.Sleep(1000);
     }
 }
Ejemplo n.º 30
0
        public async Task <IApiResult> CommitAsync(IApiResult result, CancellationToken cancellationToken = default)
        {
            result = await SaveAsync(result, cancellationToken);

            if (result.Success)
            {
                _contextTransaction?.CommitAsync(cancellationToken);
            }
            HasOpenTransaction = false;
            return(result);
        }
        public object Invoke(MethodInfo methodInfo, object arguments, Func <object> method)
        {
            Type returnType = methodInfo.ReturnType;

            IApiResponse response = (IApiResponse)Activator.CreateInstance(returnType);

            try
            {
                IApiResult result = response as IApiResult;
                if (result != null)
                {
                    result.Data = method.Invoke();
                }
                else
                {
                    method.Invoke();
                }

                response.IsSuccess = true;
                return(response);
            }
            catch (ValidationException exception)
            {
                response.ValidationErrors = exception.Errors;
            }
            catch (BusinessException exception)
            {
                response.ErrorMessage = exception.Message;

                IApiError error = response as IApiError;
                if (error != null)
                {
                    error.ErrorCode = exception.Code;
                }
            }
            catch (Exception exception)
            {
                response.ErrorMessage = exception.Message;

                IBusinessException businessException = exception as IBusinessException;
                if (businessException != null)
                {
                    IApiError error = response as IApiError;
                    if (error != null)
                    {
                        error.ErrorCode = businessException.Code;
                    }
                }
            }

            response.IsSuccess = false;
            return(response);
        }
Ejemplo n.º 32
0
 private void OnAccountUpdated(IApiResult result)
 {
     if (AccountUpdated != null)
     {
         AccountUpdated(this, result);
     }
 }
Ejemplo n.º 33
0
        void HandleApiAccountAccountUpdated(ECM.Account account, IApiResult result)
        {
            if (result != null && result.Error == null)
            {
                if(result is ApiResult<ApiKeyInfo>)
                {
                    vbxKeyInfo.Sensitive = true;
                    btnImport.Sensitive = true;

                    ApiResult<ApiKeyInfo> keyInfo = result as ApiResult<ApiKeyInfo>;
                    ApiKeyData keyData = keyInfo.Result.Key;

                    accCharacters.Clear();

                    apiAccount.UpdateOnHeartbeat();

                    foreach (ECM.Character character in apiAccount.Characters)
                    {
                        accCharacters.AppendValues(true, character.Name, character.ID);
                    }

                    // Show key access
                    imgAccBalance.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.AccountBalance);
                    imgAccountStatus.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.AccountStatus);
                    imgAssetList.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.AssetList);
                    imgCalEvents.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.CalendarEventAttendees) && keyData.AccessMask.HasFlag(ApiKeyMask.UpcomingCalendarEvents);
                    imgCharInfo.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.CharacterInfoPrivate) || keyData.AccessMask.HasFlag(ApiKeyMask.CharacterInfoPublic);
                    imgCharSheet.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.CharacterSheet);
                    imgContactNotifications.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.ContactNotifications);
                    imgContacts.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.ContactList);
                    imgContracts.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.Contracts);
                    imgFacWarStats.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.FacWarStats);
                    imgIndJobs.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.IndustryJobs);
                    imgKillLog.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.KillLog);
                    // TODO: What about mailing lists?
                    imgMail.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.MailBodies) && keyData.AccessMask.HasFlag(ApiKeyMask.MailMessages);
                    imgMarketOrders.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.MarketOrders);
                    imgMedals.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.Medals);
                    ImgNotifications.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.Notifications) && keyData.AccessMask.HasFlag(ApiKeyMask.NotificationTexts);
                    imgReseach.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.Research);
                    imgSkillQueue.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.SkillQueue);
                    imgSkillTraining.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.SkillInTraining);
                    imgStandings.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.Standings);
                    imgWallJournal.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.WalletJournal);
                    imgWallTransactions.Sensitive = keyData.AccessMask.HasFlag(ApiKeyMask.WalletTransactions);

                    ntbInfoAndLoading.CurrentPage = 0;
                }
            }
        }
        /// <summary>
        /// 处理异常
        /// </summary>
        /// <param name="exception"></param>
        /// <param name="result"></param>
        /// <returns></returns>
        private bool HandleException(Exception exception, out IApiResult result)
        {

            if (this.ExceptionHandler != null)
            {
                result = this.ExceptionHandler.Handle(exception);
                return true;
            }
            result = null;
            return false;
        }
 /// <summary>
 /// 处理模型校验错误
 /// </summary>
 /// <param name="modelState"></param>
 /// <param name="result"></param>
 /// <returns></returns>
 private bool HandleModelStateValidationError(ModelStateDictionary modelState, out IApiResult result)
 {
     if (this.ModelStateValidationErrorHandler != null)
     {
         result = this.ModelStateValidationErrorHandler.Handle(modelState);
         return true;
     }
     result = null;
     return false;
 }
 /// <summary>
 /// 处理未登录的请求
 /// </summary>
 /// <param name="ctx"></param>
 /// <param name="result"></param>
 /// <returns></returns>
 private bool HandleUnauthorizedRequest(HttpActionContext ctx, out IApiResult result)
 {
     if (this.UnauthorizedRequestHandler != null)
     {
         result = this.UnauthorizedRequestHandler.Handle(ctx);
         return true;
     }
     result = null;
     return false;
 }