コード例 #1
0
        public BaseResponse UpdateJournalStopPoint(ServiceRequest request)
        {
            return(Run <ServiceRequest, BaseResponse>(request, (resp, db, session) =>
            {
                ValidateParam(request.StopPointId);
                long stopPointId = request.StopPointId.Value;

                string name = request.Name;
                double?latitude = request.Latitude;
                double?longitude = request.Longitude;
                string extendedData = request.ExtendedData;
                string description = request.Description;

                var item = GetJournalStopPoint(db, stopPointId);

                if (name != null)
                {
                    item.Name = name;
                }
                if (description != null)
                {
                    item.Description = description;
                }
                if (latitude > 0)
                {
                    item.Latitude = latitude.Value;
                }
                if (longitude > 0)
                {
                    item.Longitude = longitude.Value;
                }
                if (extendedData != null)
                {
                    item.ExtendedData = extendedData;
                }

                item.LastUpdatedTS = DateTime.Now;
            }));
        }
コード例 #2
0
        public GetJourneyResponse GetJourneyByTruck(ServiceRequest request)
        {
            return(Run <ServiceRequest, GetJourneyResponse>(request, (resp, db, session) =>
            {
                ValidateParam(request.JournalId);
                long journalid = request.JournalId.Value;
                ValidateParam(request.TruckId);
                long truckId = request.TruckId.Value;

                var locations = db.DBModel.JournalLocations.Include(x => x.User).Where(x => x.TruckId == truckId && x.JournalId == journalid).ToList();
                if (locations.Any())
                {
                    resp.Item = new JourneyModel();
                    resp.Item.Locations = new List <JournalLocationModel>();
                    resp.Item.Driver = new UserModel(locations[0].User);
                    foreach (var i in locations)
                    {
                        resp.Item.Locations.Add(new JournalLocationModel(i));
                    }
                }
            }));
        }
コード例 #3
0
        public GetJournalsResponse GetJournals(ServiceRequest request)
        {
            return(Run <ServiceRequest, GetJournalsResponse>(request, (resp, db, session) =>
            {
                var status = request.Status;
                var includeActivity = request.IncludeActivity == null ? false : request.IncludeActivity.Value;
                var includeAttachment = request.IncludeAttachment == null ? false : request.IncludeAttachment.Value;
                var includeStopPoint = request.IncludeStopPoint == null ? false : request.IncludeStopPoint.Value;
                var includeDriver = request.IncludeDriver == null ? false : request.IncludeDriver.Value;


                resp.Items = new List <JournalModel>();
                var query = (status == null) ?
                            db.DBModel.Journals.Where(x => x.Status != JournalStatus.Deleted) :
                            db.DBModel.Journals.Where(x => x.Status == (JournalStatus)status);
                var array = query.ToArray();
                foreach (var journal in query)
                {
                    resp.Items.Add(CreateJournalModel(db, journal, includeActivity, includeAttachment, includeStopPoint, includeDriver));
                }
            }));
        }
コード例 #4
0
        public BaseResponse RemoveTruck(ServiceRequest request)
        {
            return(Run <BaseRequest, BaseResponse>(request, (resp, db, session) =>
            {
                ValidateParam(request.TruckId);
                long truckId = request.TruckId.Value;

                var truck = db.GetTruck(truckId);
                if (truck == null)
                {
                    throw new KException("Truck is not found");
                }

                if (truck.Status == TruckStatus.Inactived)
                {
                    db.RemoveTruck(truck);
                }
                else
                {
                    truck.Status = TruckStatus.Deleted;
                    truck.LastUpdatedTS = DateTime.Now;
                }
            }, false));
        }
コード例 #5
0
        public BaseResponse RemoveUser(ServiceRequest request)
        {
            return(Run <ServiceRequest, GetUsersResponse>(request, (resp, db, session) =>
            {
                ValidateParam(request.UserId);
                long driverId = request.UserId.Value;

                var user = db.GetUser(driverId);
                if (user == null)
                {
                    throw new KException("User is not found");
                }

                if (user.Status == Status.Inactived)
                {
                    db.RemoveUser(user);
                }
                else
                {
                    user.Status = Status.Deleted;
                    user.LastUpdatedTS = DateTime.Now;
                }
            }, false));
        }
コード例 #6
0
        public BaseResponse UpdateUser(ServiceRequest request)
        {
            return(Run <ServiceRequest, BaseResponse>(request, (resp, db, session) =>
            {
                ValidateParam(request.UserId);
                long driverId = request.UserId.Value;

                var user = db.GetUser(driverId);
                if (user == null)
                {
                    throw new KException("User is not found");
                }

                string firstName = request.FirstName;
                string lastName = request.LastName;
                string ssn = request.Ssn;
                string address = request.Address;
                string dob = request.Dob;
                string phone = request.Phone;
                string email = request.Email;
                string note = request.Note;
                int?status = request.Status;
                int?role = request.Role;

                if (firstName != null)
                {
                    user.FirstName = firstName;
                }
                if (lastName != null)
                {
                    user.LastName = lastName;
                }
                if (ssn != null)
                {
                    user.SSN = ssn;
                }
                if (address != null)
                {
                    user.Address = address;
                }
                if (dob != null)
                {
                    user.DOB = DateTime.ParseExact(request.Dob, "yyyy-MM-dd", null);
                }
                if (phone != null)
                {
                    user.Phone = phone;
                }
                if (email != null)
                {
                    user.Email = email;
                }
                if (note != null)
                {
                    user.Note = note;
                }
                if (status != null)
                {
                    user.Status = (Status)status.Value;
                }
                if (role != null)
                {
                    user.Role = (UserRole)role.Value;
                }
            }));
        }
コード例 #7
0
        public BaseResponse UpdateJournal(ServiceRequest request)
        {
            return(Run <ServiceRequest, BaseResponse>(request, (resp, db, session) =>
            {
                ValidateParam(request.JournalId);
                var journal = GetJournal(db, request.JournalId.Value);

                if (request.Name != null)
                {
                    journal.Name = request.Name;
                }
                if (request.Description != null)
                {
                    journal.Description = request.Description;
                }
                if (request.StartLocation != null)
                {
                    journal.StartLocation = request.StartLocation;
                }
                if (request.StartLat != null)
                {
                    journal.StartLat = request.StartLat.Value;
                }
                if (request.StartLng > 0)
                {
                    journal.StartLng = request.StartLng.Value;
                }
                if (request.EndLocation != null)
                {
                    journal.EndLocation = request.EndLocation;
                }
                if (request.EndLat > 0)
                {
                    journal.EndLat = request.EndLat.Value;
                }
                if (request.EndLng > 0)
                {
                    journal.EndLng = request.EndLng.Value;
                }
                if (request.ActiveDate != null)
                {
                    journal.ActiveDate = DateTime.ParseExact(request.ActiveDate, "yyyy-MM-dd", null);
                }
                if (request.Status != null)
                {
                    journal.Status = (JournalStatus)request.Status.Value;
                }
                if (request.ExtendedData != null)
                {
                    journal.ExtendedData = request.ExtendedData;
                }
                if (request.ReferenceCode != null)
                {
                    journal.ReferenceCode = request.ReferenceCode;
                }
                if (request.EstimatedDuration != null)
                {
                    journal.EstimatedDuration = request.EstimatedDuration;
                }
                if (request.EstimatedDistance != null)
                {
                    journal.EstimatedDistance = request.EstimatedDistance;
                }
                if (request.Mooc != null)
                {
                    journal.Mooc = request.Mooc;
                }
                if (request.Container != null)
                {
                    journal.Container = request.Container;
                }
                if (request.RouteId != null)
                {
                    journal.RouteId = request.RouteId.Value;
                }

                journal.LastUpdatedTS = DateTime.Now;
            }));
        }
コード例 #8
0
        public BaseResponse UpdateDriver(ServiceRequest request)
        {
            return(Run <ServiceRequest, BaseResponse>(request, (resp, db, session) =>
            {
                ValidateParam(request.DriverId);
                long driverId = request.DriverId.Value;

                var driver = db.GetDriver(driverId);
                if (driver == null)
                {
                    throw new KException("Driver is not found");
                }

                if (request.FirstName != null)
                {
                    driver.FirstName = request.FirstName;
                }
                if (request.LastName != null)
                {
                    driver.LastName = request.LastName;
                }
                if (request.Ssn != null)
                {
                    driver.SSN = request.Ssn;
                }
                if (request.Address != null)
                {
                    driver.Address = request.Address;
                }
                if (request.Dob != null)
                {
                    driver.DOB = DateTime.ParseExact(request.Dob, "yyyy-MM-dd", null);                      //dob.Value;
                }
                if (request.Phone != null)
                {
                    driver.Phone = request.Phone;
                }
                if (request.Email != null)
                {
                    driver.Email = request.Email;
                }
                if (request.Note != null)
                {
                    driver.Note = request.Note;
                }
                if (request.LicenseNo != null)
                {
                    driver.LicenseNo = request.LicenseNo;
                }
                if (request.ClassType != null)
                {
                    driver.ClassType = request.ClassType;
                }
                if (request.IssuedPlace != null)
                {
                    driver.IssuedPlace = request.IssuedPlace;
                }
                if (request.ExpiredDate != null)
                {
                    driver.ExpiredDate = DateTime.ParseExact(request.ExpiredDate, "yyyy-MM-dd", null);
                }
                if (request.IssuedDate != null)
                {
                    driver.IssuedDate = DateTime.ParseExact(request.IssuedDate, "yyyy-MM-dd", null);
                }
                if (request.Status != null)
                {
                    driver.Status = (Status)request.Status.Value;
                }
                if (request.TruckId != null)
                {
                    driver.TruckId = request.TruckId;
                }
            }));
        }
コード例 #9
0
        public GetDriverResponse AddDriver(ServiceRequest request)
        {
            return(Run <ServiceRequest, GetDriverResponse>(request, (resp, db, session) =>
            {
                //ValidateParam(request.DriverId);
                //long driverId = request.DriverId.Value;

                string username = request.UserName;
                string password = request.Password;
                string firstName = request.FirstName;
                string lastName = request.LastName;
                string ssn = request.Ssn;
                string address = request.Address;
                string dob = request.Dob;
                string phone = request.Phone;
                string email = request.Email;
                string note = request.Note;
                string licenseNo = request.LicenseNo;
                string classType = request.ClassType;
                string issuedPlace = request.IssuedPlace;
                string expiredDate = request.ExpiredDate;
                string issuedDate = request.IssuedDate;
                int?status = request.Status;
                long?truckId = request.TruckId;

                var existingUser = db.GetUser(username);
                if (existingUser != null)
                {
                    throw new KException($"Driver {username} existed!");
                }

                var driver = new Driver()
                {
                    Username = username,
                    Password = Utils.HashPassword(password),
                    FirstName = firstName,
                    LastName = lastName,
                    SSN = ssn,
                    Address = address,
                    DOB = DateTime.ParseExact(request.Dob, "yyyy-MM-dd", null),//request.Dob?? request.Dob.Value;
                    Phone = phone,
                    Email = email,
                    Note = note,
                    Role = UserRole.Driver,
                    LastUpdatedTS = DateTime.Now,
                    CreatedTS = DateTime.Now,
                    Status = (status != null) ? (Status)status.Value : Status.Actived,
                    LicenseNo = licenseNo,
                    ClassType = classType,
                    IssuedPlace = issuedPlace,
                    TruckId = truckId,
                };
                if (expiredDate != null)
                {
                    driver.ExpiredDate = DateTime.ParseExact(request.ExpiredDate, "yyyy-MM-dd", null);
                }

                if (issuedDate != null)
                {
                    driver.IssuedDate = DateTime.ParseExact(request.IssuedDate, "yyyy-MM-dd", null);
                }

                driver.Validate();

                db.AddDriver(driver);
                db.SaveChanges();

                driver.Truck = db.DBModel.Trucks.FirstOrDefault(x => x.Id == truckId);
                resp.Item = new DriverModel(driver);
            }, false));
        }