Example #1
0
        public async Task <IHttpActionResult> SetDailyServiceTrips(TripInputViewModel model)
        {
            _logger.Information("SetDailyServiceTrips model: " + JsonConvert.SerializeObject(model));

            VerityResult result = new VerityResult();

            try
            {
                result = JudgeUserIdentifyNameToVerityResult();
                if (!result.IsOk)
                {
                    return(ReturnResponseMessageResult(result, HttpStatusCode.Unauthorized));
                }

                string userId = _aspNetUsersService.QueryUser(User.Identity.Name).Id;
                result = await _putTripService.CreateOrUpdatePutTrip(model, userId);

                _logger.Information("SetDailyServiceTrips result: " + JsonConvert.SerializeObject(result));
                return(new ResponseMessageResult(
                           Request.CreateResponse(
                               HttpStatusCode.OK,
                               result
                               )));
            }
            catch (Exception ex)
            {
                _logger.Information("SetDailyServiceTrips Error: " + JsonConvert.SerializeObject(ex));

                result.IsOk    = false;
                result.Message = ex.Message.ToString();
                return(ReturnResponseMessageResult(result, HttpStatusCode.InternalServerError));

                throw ex;
            }
        }
Example #2
0
        /// <summary>
        /// 新增或更新 放趟
        /// </summary>
        /// <param name="model"></param>
        /// <param name="UserId"></param>
        /// <returns></returns>
        public async Task <VerityResult> CreateOrUpdatePutTrip(TripInputViewModel model, string UserId)
        {
            VerityResult result = new VerityResult();

            using (var transaction = _putTripRepository._context.Database.BeginTransaction())
            {
                try
                {
                    PutTrip actionItem   = new PutTrip();
                    int?    groupId      = _usersService.GetGroupId(UserId);
                    var     queryPutTrip = _db.PutTrip.Where(x => x.date.Value == model.date.Date && x.groupId == groupId);
                    if (!queryPutTrip.Any())
                    {
                        DbSetExt.CopyObject <PutTrip>(model, ref actionItem);

                        var    maxTripId   = _db.PutTrip.Max(x => x.tripId);
                        string generTripId = GetSerialNumber(maxTripId);

                        actionItem.username      = UserId;
                        actionItem.groupId       = _usersService.GetGroupId(UserId);
                        actionItem.date          = model.date;
                        actionItem.createTime    = DateTime.Now;
                        actionItem.tripId        = generTripId;
                        actionItem.type          = true;
                        actionItem.isClose       = true;
                        actionItem.AuthorizeType = model.AuthotrizeType;

                        _putTripRepository.Create(actionItem);

                        result.IsOk    = true;
                        result.Message = string.Format(Resource.CreateSuccess, "PutTrip");
                    }
                    else
                    {
                        actionItem = queryPutTrip.First();

                        #region 驗證是否是自己的車隊 groupId
                        int?queryDriverGroupID = _usersService.GetGroupId(UserId);
                        if (queryDriverGroupID.HasValue)
                        {
                            if (actionItem.groupId == queryDriverGroupID.Value)
                            {
                                DbSetExt.CopyObject <PutTrip>(model, ref actionItem);
                                actionItem.isClose       = false;
                                actionItem.AuthorizeType = model.AuthotrizeType;
                                actionItem.updateTime    = DateTime.Now;

                                _putTripRepository.Update(actionItem);

                                result.IsOk    = true;
                                result.Message = string.Format(Resource.UpdateSuccess, "PutTrip");
                            }
                            else
                            {
                                DbSetExt.CopyObject <PutTrip>(model, ref actionItem);

                                var    maxTripId   = _db.PutTrip.Max(x => x.tripId);
                                string generTripId = GetSerialNumber(maxTripId);

                                actionItem.username      = UserId;
                                actionItem.groupId       = _usersService.GetGroupId(UserId);
                                actionItem.date          = model.date;
                                actionItem.createTime    = DateTime.Now;
                                actionItem.tripId        = generTripId;
                                actionItem.type          = true;
                                actionItem.isClose       = true;
                                actionItem.AuthorizeType = model.AuthotrizeType;

                                _putTripRepository.Create(actionItem);

                                result.IsOk    = true;
                                result.Message = string.Format(Resource.CreateSuccess, "PutTrip");
                            }
                        }
                        #endregion
                    }
                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    result.Message = ex.Message.ToString();
                    result.IsOk    = false;
                    throw ex;
                }
            }
            return(await Task.Run(() => result));
        }