public bool RequestService(int userId, ServiceRequestDTO serviceRequest)
 {
     using (var entities = new UCAInvestDBEntities())
     {
         var userDbResponse = entities.users.SingleOrDefault(t => t.user_id == userId);
         if (userDbResponse != null)
         {
             if (userDbResponse.status == "service_requested")
             {
                 return(false);
             }
             long        timeStamp    = (long)TimeFunctions.DateTimeToUnixTimestamp(DateTime.Now);
             var         location     = LocationServices.GenerateDBGeographyFromCoordinates(serviceRequest.coordinates);
             UserService serviceToAdd = new UserService()
             {
                 client_user_id      = userId,
                 request_timestamp   = timeStamp,
                 location            = location,
                 description         = serviceRequest.description,
                 taken_timestamp     = 0,
                 completed_timestamp = 0
             };
             entities.user_services.Add(serviceToAdd);
             userDbResponse.status = "service_requested";
             entities.SaveChanges();
             return(true);
         }
     }
     return(false);
 }
示例#2
0
        public void AddOrUpdateServiceRequest(ServiceRequestDTO serviceRequest)
        {
            DateTime timestamp = DateTime.Parse(DateTime.Now.ToString("O"));
            var      request   = new ServiceRequest.DataAccess.ServiceRequest
            {
                ID               = serviceRequest.ID != Guid.Empty ? serviceRequest.ID : Guid.NewGuid(),
                Description      = serviceRequest.Description,
                BuildingCode     = serviceRequest.BuildingCode,
                CurrentStatus    = (DataAccess.CurrentStatus?)serviceRequest.CurrentStatus,
                LastModifiedBy   = serviceRequest.LastModifiedBy,
                LastModifiedDate = timestamp
            };

            //hmm need to check if it is a new request or existing one and then proceed with updating/adding
            if (serviceRequest.ID != Guid.Empty) //exists => update
            {
                _repo.UpdateServiceRequest(request);
            }
            else
            {
                request.CreatedBy   = serviceRequest.LastModifiedBy;
                request.CreatedDate = timestamp;
                _repo.AddServiceRequest(request);
            }
        }
        public IHttpActionResult Request([FromBody] ServiceRequestDTO request)
        {
            var _userWithData = (RegisterUserDTO)HttpContext.Current.Items["user"];;

            if (new ServicesServices().RequestService(_userWithData.user_id, request))
            {
                return(Json(new StatusChangeDTO("service_requested")));
            }
            return(Conflict());
        }
示例#4
0
        public int?SaveServiceRequest(string user, ServiceRequestDTO data, bool isDraft = true)
        {
            var rh = RequestHandlerFactory.Instance.GetHandler(data);

            if (rh == null)
            {
                throw new NotImplementedException();
            }
            rh.User = new UserAndRoleDTO
            {
                Username = user
            };
            rh.ServiceRequest = data;
            rh.IsDraft        = isDraft;
            return(rh.Save());
        }
        public RequestHandlerBase GetHandler(ServiceRequestDTO data)
        {
            RequestHandlerBase handler = null;
            var type = data.GetType();

            if (type == typeof(TransferAssetRequestDTO))
            {
                handler = new TransferAssetReqHandler();
            }
            else if (type == typeof(TerminationRequestDTO))
            {
                handler = new TerminationReqHandler();
            }
            else if (type == typeof(ReturnDeviceRequestDTO))
            {
                handler = new ReturnDeviceReqHandler();
            }
            else if (type == typeof(NewScenarioRequestDTO))
            {
                handler = new NewScenarioReqHandler();
            }
            else if (type == typeof(NewContractRequestDTO))
            {
                handler = new NewContractReqHandler();
            }
            else if (type == typeof(ErrorChargesRequestDTO))
            {
                handler = new ErrorChargesReqHandler();
            }
            else if (type == typeof(BrokenDeviceRequestDTO))
            {
                handler = new BrokenDeviceReqHandler();
            }

            if (handler != null)
            {
                handler.ServiceRequest = data;
                return(handler);
            }
            throw new NotImplementedException();
        }
示例#6
0
 public void UpdateServiceRequest([FromBody] ServiceRequestDTO request, Guid id)
 {
     request.ID = id;
     _management.AddOrUpdateServiceRequest(request);
 }
示例#7
0
 public void SaveServiceRequest([FromBody] ServiceRequestDTO request)
 {
     _management.AddOrUpdateServiceRequest(request);
 }