Beispiel #1
0
        protected override Dictionary <string, object> MakeRequest(T request)
        {
            Dictionary <string, object> payload = new Dictionary <string, object>();


            if (request.JobWaypoints != null)
            {
                JobWaypoint wp = request.JobWaypoints[0];

                payload.Add("customer_id", request.ExternalCustomerId);
                payload.Add("address", wp.Address.Line1 + " " + wp.Address.City + ", " + wp.Address.State + " " + wp.Address.ZipCode);
                payload.Add("lat", wp.Address.Latitude.ToString());
                payload.Add("lng", wp.Address.Longitude.ToString());
            }
            return(payload);
        }
Beispiel #2
0
        ///////// The above code -- SaveJob(), SaveWaypoint(), SaveItem() -- make up the 'upsert' that creates the massive job object



        public Job GetJobById(int Id)
        {
            Job Job = null;
            List <JobWaypoint>     Waypoints = null;
            List <JobWaypointItem> Items     = null;

            DataProvider.ExecuteCmd(GetConnection, "dbo.Jobs_SelectJobByJobId"
                                    , inputParamMapper : delegate(SqlParameterCollection paramCollection)
            {
                paramCollection.AddWithValue("@Id", Id);
            }, map : delegate(IDataReader reader, short set)
            {
                if (set == 0)
                {
                    int startingIndex = 0;
                    Job                     = new Job();
                    Job.Id                  = reader.GetSafeInt32(startingIndex++);
                    Job.UserId              = reader.GetSafeString(startingIndex++);
                    Job.JobStatus           = reader.GetSafeEnum <JobStatus>(startingIndex++);
                    Job.JobType             = reader.GetSafeEnum <JobsType>(startingIndex++);
                    Job.Price               = reader.GetSafeDecimal(startingIndex++);
                    Job.JobRequest          = reader.GetSafeInt32(startingIndex++);
                    Job.ContactName         = reader.GetSafeString(startingIndex++);
                    Job.Phone               = reader.GetSafeString(startingIndex++);
                    Job.SpecialInstructions = reader.GetSafeString(startingIndex++);
                    Job.Created             = reader.GetSafeDateTime(startingIndex++);
                    Job.Modified            = reader.GetSafeDateTime(startingIndex++);
                    Job.WebsiteId           = reader.GetSafeInt32(startingIndex++);
                    Job.ExternalJobId       = reader.GetSafeInt32(startingIndex++);
                    Job.ExternalCustomerId  = reader.GetSafeInt32(startingIndex++);


                    Job.User                = new UserProfile();
                    Job.User.UserId         = reader.GetSafeString(startingIndex++);
                    Job.User.FirstName      = reader.GetSafeString(startingIndex++);
                    Job.User.LastName       = reader.GetSafeString(startingIndex++);
                    Job.User.ExternalUserId = reader.GetSafeString(startingIndex++);
                    Job.User.DateCreated    = reader.GetSafeDateTime(startingIndex++);
                    Job.User.DateModified   = reader.GetSafeDateTime(startingIndex++);
                    Job.User.MediaId        = reader.GetSafeInt32(startingIndex++);
                    Job.User.TokenHash      = reader.GetSafeGuid(startingIndex++).ToString(); // Unable to cast object of type 'System.Guid' to type 'System.String

                    Job.Website              = new Website();
                    Job.Website.Id           = reader.GetSafeInt32(startingIndex++);
                    Job.Website.Name         = reader.GetSafeString(startingIndex++);
                    Job.Website.Slug         = reader.GetSafeString(startingIndex++);
                    Job.Website.Description  = reader.GetSafeString(startingIndex++);
                    Job.Website.Url          = reader.GetSafeString(startingIndex++);
                    Job.Website.MediaId      = reader.GetSafeInt32Nullable(startingIndex++);
                    Job.Website.DateCreated  = reader.GetSafeUtcDateTime(startingIndex++);
                    Job.Website.DateModified = reader.GetSafeDateTime(startingIndex++);
                    Job.Website.Phone        = reader.GetSafeString(startingIndex++);
                    Job.Website.AddressId    = reader.GetSafeInt32Nullable(startingIndex++);

                    Job.Website.Media     = new Media();
                    Job.Website.Media.Id  = reader.GetSafeInt32(startingIndex++);
                    Job.Website.Media.Url = reader.GetSafeString(startingIndex++);

                    Job.User.CreditCards        = new UserCreditCards();
                    Job.User.CreditCards.Id     = reader.GetSafeInt32(startingIndex++);
                    Job.User.CreditCards.UserId = reader.GetSafeString(startingIndex++);
                    Job.User.CreditCards.ExternalCardIdNonce = reader.GetSafeString(startingIndex++);
                    Job.User.CreditCards.Last4DigitsCC       = reader.GetSafeString(startingIndex++);
                    Job.User.CreditCards.CardType            = reader.GetSafeString(startingIndex++);

                    Job.User.Email = reader.GetSafeString(startingIndex++);
                    Job.User.Phone = reader.GetSafeString(startingIndex++);
                }
                else if (set == 1)
                {
                    int startingIndex = 0;

                    JobWaypoint Waypoint = new JobWaypoint();

                    Waypoint.Id                  = reader.GetSafeInt32(startingIndex++);
                    Waypoint.JobId               = reader.GetSafeInt32(startingIndex++);
                    Waypoint.AddressId           = reader.GetSafeInt32(startingIndex++);
                    Waypoint.SuiteNo             = reader.GetSafeString(startingIndex++);
                    Waypoint.ContactName         = reader.GetSafeString(startingIndex++);
                    Waypoint.Phone               = reader.GetSafeString(startingIndex++);
                    Waypoint.SpecialInstructions = reader.GetSafeString(startingIndex++);
                    Waypoint.ServiceNote         = reader.GetSafeString(startingIndex++);
                    Waypoint.Created             = reader.GetSafeDateTime(startingIndex++);
                    Waypoint.Modified            = reader.GetSafeDateTime(startingIndex++);
                    Waypoint.ExternalWaypointId  = reader.GetSafeInt32(startingIndex++);
                    Waypoint.ExternalCustomerId  = reader.GetSafeInt32(startingIndex++);

                    Waypoint.Address                 = new Address();
                    Waypoint.Address.AddressId       = reader.GetSafeInt32(startingIndex++);
                    Waypoint.Address.DateCreated     = reader.GetSafeDateTime(startingIndex++);
                    Waypoint.Address.DateModified    = reader.GetSafeDateTime(startingIndex++);
                    Waypoint.Address.UserId          = reader.GetSafeString(startingIndex++);
                    Waypoint.Address.Name            = reader.GetSafeString(startingIndex++);
                    Waypoint.Address.ExternalPlaceId = reader.GetSafeString(startingIndex++);
                    Waypoint.Address.Line1           = reader.GetSafeString(startingIndex++);
                    Waypoint.Address.Line2           = reader.GetSafeString(startingIndex++);
                    Waypoint.Address.City            = reader.GetSafeString(startingIndex++);
                    Waypoint.Address.State           = reader.GetSafeString(startingIndex++);
                    Waypoint.Address.StateId         = reader.GetSafeInt32(startingIndex++);
                    Waypoint.Address.ZipCode         = reader.GetSafeInt32(startingIndex++);
                    Waypoint.Address.Latitude        = reader.GetSafeDecimal(startingIndex++);
                    Waypoint.Address.Longitude       = reader.GetSafeDecimal(startingIndex++);


                    if (Waypoints == null)
                    {
                        Waypoints = new List <JobWaypoint>();
                    }
                    Waypoints.Add(Waypoint);
                }
                else if (set == 2)
                {
                    int startingIndex    = 0;
                    JobWaypointItem Item = new JobWaypointItem();

                    Item.Id           = reader.GetSafeInt32(startingIndex++);
                    Item.JobId        = reader.GetSafeInt32(startingIndex++);
                    Item.WaypointId   = reader.GetSafeInt32(startingIndex++);
                    Item.ItemTypeId   = reader.GetSafeInt32(startingIndex++);
                    Item.ItemNote     = reader.GetSafeString(startingIndex++);
                    Item.Quantity     = reader.GetSafeInt32(startingIndex++);
                    Item.MediaId      = reader.GetSafeInt32(startingIndex++);
                    Item.Created      = reader.GetSafeDateTime(startingIndex++);
                    Item.Modified     = reader.GetSafeDateTime(startingIndex++);
                    Item.Operation    = reader.GetSafeInt32(startingIndex++);
                    Item.ParentItemId = reader.GetSafeInt32(startingIndex++);


                    Item.JobItem              = new JobItemOptionsDomain();
                    Item.JobItem.Id           = reader.GetSafeInt32(startingIndex++);
                    Item.JobItem.dateCreated  = reader.GetSafeDateTime(startingIndex++);
                    Item.JobItem.dateModified = reader.GetSafeDateTime(startingIndex++);
                    Item.JobItem.Name         = reader.GetSafeString(startingIndex++);
                    Item.JobItem.MinTime      = reader.GetSafeInt32(startingIndex++);
                    Item.JobItem.websiteId    = reader.GetSafeInt32(startingIndex++);
                    Item.JobItem.MediaId      = reader.GetSafeInt32(startingIndex++);
                    Item.JobItem.MaxTime      = reader.GetSafeInt32(startingIndex++);

                    Item.JobItem.Media             = new Media();
                    Item.JobItem.Media.Id          = reader.GetSafeInt32(startingIndex++);
                    Item.JobItem.Media.Url         = reader.GetSafeString(startingIndex++);
                    Item.JobItem.Media.MediaType   = reader.GetSafeInt32(startingIndex++);
                    Item.JobItem.Media.UserId      = reader.GetSafeString(startingIndex++);
                    Item.JobItem.Media.Title       = reader.GetSafeString(startingIndex++);
                    Item.JobItem.Media.Description = reader.GetSafeString(startingIndex++);

                    if (Item.MediaId != 0 && Item.MediaId != 1)
                    {
                        Item.Media = new Media();
                        Item.Media.DateModified    = reader.GetSafeDateTime(startingIndex++);
                        Item.Media.DateCreated     = reader.GetSafeDateTime(startingIndex++);
                        Item.Media.Url             = reader.GetSafeString(startingIndex++);
                        Item.Media.MediaType       = reader.GetSafeInt32(startingIndex++);
                        Item.Media.UserId          = reader.GetSafeString(startingIndex++);
                        Item.Media.Title           = reader.GetSafeString(startingIndex++);
                        Item.Media.Description     = reader.GetSafeString(startingIndex++);
                        Item.Media.ExternalMediaId = reader.GetSafeInt32(startingIndex++);
                        Item.Media.FileType        = reader.GetSafeString(startingIndex++);
                    }

                    if (Items == null)
                    {
                        Items = new List <JobWaypointItem>();
                    }
                    Items.Add(Item);
                }
            }
                                    );

            if (Waypoints != null)
            {
                foreach (var waypoint in Waypoints)                      // we loop through every Waypoint in our list we created in the beginning of our Get...
                {
                    foreach (var item in Items)                          // ... at the same time, we loop through every Item in our list we created in the beginning of our Get...
                    {
                        if (item.WaypointId == waypoint.Id)              // ... and when an Item has a WaypointId that matches an Id in Waypoint...
                        {
                            if (waypoint.JobWaypointItemsPickup == null) // (null check, then instantiate a list to put Items in -- this goes in JobWaypoint Domain)
                            {
                                waypoint.JobWaypointItemsPickup = new List <JobWaypointItem>();
                            }
                            if (waypoint.JobWaypointItemsDropOff == null)
                            {
                                waypoint.JobWaypointItemsDropOff = new List <JobWaypointItem>();
                            }
                            if (item.Operation == 1)                       // ... if Item is for pick up, then ...
                            {
                                waypoint.JobWaypointItemsPickup.Add(item); // ... we add the particular Item to this list.
                            }
                            else // ... if Item is for drop off, then ...
                            {
                                waypoint.JobWaypointItemsDropOff.Add(item); // ... we add the particular Item to this list.
                            }
                        }
                    }
                }
                Job.JobWaypoints = Waypoints; //Job Domain already has a key value for a list of Waypoints -- we set that to our list that we created in beginning of this Get service.


                //this foreach loop determines what items belong are for pick-up vs. drop off
                foreach (var item in Items)
                {
                    bool found = false;
                    foreach (var itemAgain in Items)
                    {
                        if (item.Id != itemAgain.Id && item.Operation == 2 || item.Id == itemAgain.ParentItemId)
                        {
                            found = true;

                            break;
                        }
                    }

                    if (!found)
                    {
                        if (Job.ItemsToBeDroppedOff == null)
                        {
                            Job.ItemsToBeDroppedOff = new List <JobWaypointItem>();
                        }
                        Job.ItemsToBeDroppedOff.Add(item);
                    }
                }
            }

            //this assigns the team per zip code
            if (Waypoints != null)
            {
                if (Job.JobWaypoints[0].Address.ZipCode != 0)
                {
                    int    TeamId       = 0;
                    string queryZipCode = (Job.JobWaypoints[0].Address.ZipCode).ToString();
                    TeamId     = _WebsiteTeamService.GetTeamIdByZipcode(queryZipCode);
                    Job.TeamId = TeamId;
                }
            }
            return(Job);
        }