示例#1
0
文件: Program.cs 项目: DSanak/Parcels
 public void ParcelStatusSub(string trackNumber, ParcelStatus status)
 {
     if (trackNumber == TrackNumber)
     {
         Console.WriteLine("[{​​0}​​]: O moja paczka {​​1}​​ zmieniła status na: {​​2}​​", Name, trackNumber, status);
     }
 }
示例#2
0
 public void ChangeParcelStatus(Parcel parcelToChange, ParcelStatus status)
 {
     if (_parcelManager.ChangeParcelStatus(parcelToChange, status) == 0)
     {
         throw new NothingAddedToDatabaseException(parcelToChange);
     }
 }
示例#3
0
        private void ButtonCheckStatus_Click(object sender, EventArgs e)
        {
            try
            {
                if (!(textBoxInsertNumber.Text == "") && !(textBoxInsertNumber.Text == "Wpisz numer przesyłki"))
                {
                    ParcelStatus theStatus = _parcelController.GetParcelStatusById(ConvertStringToInt(textBoxInsertNumber.Text));

                    switch (theStatus)
                    {
                    case ParcelStatus.AtPostingPoint:
                    {
                        labelStatus.Text = "Przesyłka w punkcie nadania";
                        break;
                    }

                    case ParcelStatus.OnWayToWarehouse:
                    {
                        labelStatus.Text = "Przeyłka w drodze do magazynu";
                        break;
                    }

                    case ParcelStatus.InWarehouse:
                    {
                        labelStatus.Text = "Przesyłka w magazynie";
                        break;
                    }

                    case ParcelStatus.OnWayToTheCustomer:
                    {
                        labelStatus.Text = "Przesyłka w drodze do odbiorcy";
                        break;
                    }

                    case ParcelStatus.Returned:
                    {
                        labelStatus.Text = "Przesyłka zwrócona";
                        break;
                    }

                    case ParcelStatus.Delivered:
                    {
                        labelStatus.Text = "Przesyłka dostarczona";
                        break;
                    }

                    default:
                    {
                        labelStatus.Text = "Brak przesyłki o podanym numerze";
                        break;
                    }
                    }
                }
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);
            }
        }
示例#4
0
 public Parcel[] GetParcelsFromStorePlaceByStatus(StorePlace storePlace, ParcelStatus status)
 {
     return(_context.Parcels.AsNoTracking()
            .Where(p => p.StorePlaceId == storePlace.Id && p.ParcelStatus == status)
            .Include(p => p.ReceiverData)
            .ThenInclude(p => p.PersonalAddress)
            .ToArray());
 }
示例#5
0
 public Parcel[] GetParcelsFromStorePlaceByStatus(StorePlace storePlace, ParcelStatus status)
 {
     Parcel[] parcels = _parcelManager.GetParcelsFromStorePlaceByStatus(storePlace, status);
     if (parcels.Length == 0)
     {
         throw new ParcelNotFoundInDatabaseException(storePlace);
     }
     return(parcels);
 }
示例#6
0
 public Parcel(Guid id, string name, User sender, User receiver, Address senderAddress, Address receiverAddress)
 {
     Id              = id;
     Name            = name;
     SenderId        = sender.Id;
     ReceiverId      = receiver.Id;
     SendAt          = DateTime.UtcNow;
     SenderAddress   = senderAddress;
     ReceiverAddress = receiverAddress;
     Status          = ParcelStatus.Sent;
 }
示例#7
0
        /// <summary>
        /// Copy constructor
        /// </summary>
        public SceneParcel(SceneParcel parcel)
        {
            if (parcel.AccessBlackList != null)
            {
                AccessBlackList = new List <ParcelAccessEntry>(parcel.AccessBlackList);
            }
            if (parcel.AccessWhiteList != null)
            {
                AccessWhiteList = new List <ParcelAccessEntry>(parcel.AccessWhiteList);
            }
            AuthBuyerID    = parcel.AuthBuyerID;
            AutoReturnTime = parcel.AutoReturnTime;
            Bitmap         = new byte[512];
            Buffer.BlockCopy(parcel.Bitmap, 0, Bitmap, 0, 512);
            Category     = parcel.Category;
            ClaimDate    = parcel.ClaimDate;
            Desc         = parcel.Desc;
            Dwell        = parcel.Dwell;
            Flags        = parcel.Flags;
            GroupID      = parcel.GroupID;
            IsGroupOwned = parcel.IsGroupOwned;
            Landing      = parcel.Landing;
            LocalID      = parcel.LocalID;
            MaxPrims     = parcel.MaxPrims;
            ParcelMedia oldMedia = parcel.Media;

            Media = new ParcelMedia
            {
                MediaAutoScale = oldMedia.MediaAutoScale,
                MediaDesc      = oldMedia.MediaDesc,
                MediaHeight    = oldMedia.MediaHeight,
                MediaID        = oldMedia.MediaID,
                MediaLoop      = oldMedia.MediaLoop,
                MediaType      = oldMedia.MediaType,
                MediaURL       = oldMedia.MediaURL,
                MediaWidth     = oldMedia.MediaWidth
            };
            MusicURL          = parcel.MusicURL;
            Name              = parcel.Name;
            ObscureMedia      = parcel.ObscureMedia;
            ObscureMusic      = parcel.ObscureMusic;
            OwnerID           = parcel.OwnerID;
            PassHours         = parcel.PassHours;
            PassPrice         = parcel.PassPrice;
            DenyAgeUnverified = parcel.DenyAgeUnverified;
            DenyAnonymous     = parcel.DenyAnonymous;
            PushOverride      = parcel.PushOverride;
            SalePrice         = parcel.SalePrice;
            SnapshotID        = parcel.SnapshotID;
            Status            = parcel.Status;
            LandingLocation   = parcel.LandingLocation;
            LandingLookAt     = parcel.LandingLookAt;
        }
示例#8
0
        public Parcel[] GetParcelsFromStorePlaceByStatus(StorePlace storePlace, ParcelStatus status)
        {
            Parcel[] parcels = { };
            try
            {
                parcels = _parcelService.GetParcelsFromStorePlaceByStatus(storePlace, status);
            }
            catch (ParcelNotFoundInDatabaseException e)
            {
                Console.WriteLine(e.Message);
            }

            return(parcels);
        }
示例#9
0
        public int ChangeParcelStatus(Parcel parcelToChange, ParcelStatus status)
        {
            Parcel parcel = _context.Parcels.Find(parcelToChange.Id);

            if (parcel != null)
            {
                parcel.ParcelStatus = status;
                _context.Parcels.Update(parcel);
                return(_context.SaveChanges());
            }
            else
            {
                return(0);
            }
        }
示例#10
0
        public ParcelStatus GetParcelStatusById(int id)
        {
            ParcelStatus status = ParcelStatus.Unknown;

            try
            {
                Parcel postedParcel = _parcelService.GetById(id);
                status = postedParcel.ParcelStatus;
            }
            catch (ParcelNotFoundInDatabaseException e)
            {
                Console.WriteLine(e.Message);
            }

            return(status);
        }
示例#11
0
 public bool ChangeParcelStatus(int id, ParcelStatus status)
 {
     try
     {
         _parcelService.ChangeParcelStatus(_parcelService.GetById(id), status);
     }
     catch (ParcelNotFoundInDatabaseException e)
     {
         Console.WriteLine(e.ToString());
         return(false);
     }
     catch (NothingAddedToDatabaseException e)
     {
         Console.WriteLine(e.ToString());
         return(false);
     }
     return(true);
 }
        private void When(ParcelSnapshot snapshot)
        {
            _parcelId = new ParcelId(snapshot.ParcelId);
            if (!string.IsNullOrEmpty(snapshot.ParcelStatus))
            {
                var status = ParcelStatus.Parse(snapshot.ParcelStatus);
                if (status == ParcelStatus.Realized)
                {
                    IsRealized = true;
                }
                if (status == ParcelStatus.Retired)
                {
                    IsRetired = true;
                }
            }

            IsRemoved = snapshot.IsRemoved;
            LastModificationBasedOnCrab = snapshot.LastModificationBasedOnCrab;

            foreach (var activeHouseNumberByTerrainObject in snapshot.ActiveHouseNumberIdsByTerrainObjectHouseNr)
            {
                _activeHouseNumberIdsByTerreinObjectHouseNr.Add(
                    new CrabTerrainObjectHouseNumberId(activeHouseNumberByTerrainObject.Key),
                    new CrabHouseNumberId(activeHouseNumberByTerrainObject.Value));
            }

            foreach (var addressId in snapshot.AddressIds)
            {
                _addressCollection.Add(new AddressId(addressId));
            }

            foreach (var subaddressWasImportedFromCrab in snapshot.ImportedSubaddressFromCrab)
            {
                _addressCollection.Add(subaddressWasImportedFromCrab);
            }
        }
示例#13
0
 /// <summary>
 /// Defalt constructor
 /// </summary>
 /// <param name="simulator">Simulator this parcel resides in</param>
 /// <param name="localID">Local ID of this parcel</param>
 public Parcel(Simulator simulator, int localID)
 {
     Simulator = simulator;
     LocalID = localID;
     RequestResult = 0;
     SequenceID = 0;
     SnapSelection = false;
     SelfCount = 0;
     OtherCount = 0;
     PublicCount = 0;
     OwnerID = UUID.Zero;
     IsGroupOwned = false;
     AuctionID = 0;
     ClaimDate = Helpers.Epoch;
     ClaimPrice = 0;
     RentPrice = 0;
     AABBMin = Vector3.Zero;
     AABBMax = Vector3.Zero;
     Bitmap = new byte[0];
     Area = 0;
     Status = ParcelStatus.None;
     SimWideMaxPrims = 0;
     SimWideTotalPrims = 0;
     MaxPrims = 0;
     TotalPrims = 0;
     OwnerPrims = 0;
     GroupPrims = 0;
     OtherPrims = 0;
     SelectedPrims = 0;
     ParcelPrimBonus = 0;
     OtherCleanTime = 0;
     Flags = ParcelFlags.None;
     SalePrice = 0;
     Name = String.Empty;
     Desc = String.Empty;
     MusicURL = String.Empty;
     GroupID = UUID.Zero;
     PassPrice = 0;
     PassHours = 0;
     Category = ParcelCategory.None;
     AuthBuyerID = UUID.Zero;
     SnapshotID = UUID.Zero;
     UserLocation = Vector3.Zero;
     UserLookAt = Vector3.Zero;
     LandingType = 0x0;
     Dwell = 0;
     RegionDenyAnonymous = false;
     RegionPushOverride = false;
     AccessList = new List<ParcelManager.ParcelAccessEntry>(0);
     RegionDenyAgeUnverified = false;
     Media = new ParcelMedia();
     ObscureMedia = false;
     ObscureMusic = false;
 }
示例#14
0
文件: IParcels.cs 项目: thoys/simian
 /// <summary>
 /// Copy constructor
 /// </summary>
 public SceneParcel(SceneParcel parcel)
 {
     if (parcel.AccessBlackList != null)
         AccessBlackList = new List<ParcelAccessEntry>(parcel.AccessBlackList);
     if (parcel.AccessWhiteList != null)
         AccessWhiteList = new List<ParcelAccessEntry>(parcel.AccessWhiteList);
     AuthBuyerID = parcel.AuthBuyerID;
     AutoReturnTime = parcel.AutoReturnTime;
     Bitmap = new byte[512];
     Buffer.BlockCopy(parcel.Bitmap, 0, Bitmap, 0, 512);
     Category = parcel.Category;
     ClaimDate = parcel.ClaimDate;
     Desc = parcel.Desc;
     Dwell = parcel.Dwell;
     Flags = parcel.Flags;
     GroupID = parcel.GroupID;
     IsGroupOwned = parcel.IsGroupOwned;
     Landing = parcel.Landing;
     LocalID = parcel.LocalID;
     MaxPrims = parcel.MaxPrims;
     ParcelMedia oldMedia = parcel.Media;
     Media = new ParcelMedia
     {
         MediaAutoScale = oldMedia.MediaAutoScale,
         MediaDesc = oldMedia.MediaDesc,
         MediaHeight = oldMedia.MediaHeight,
         MediaID = oldMedia.MediaID,
         MediaLoop = oldMedia.MediaLoop,
         MediaType = oldMedia.MediaType,
         MediaURL = oldMedia.MediaURL,
         MediaWidth = oldMedia.MediaWidth
     };
     MusicURL = parcel.MusicURL;
     Name = parcel.Name;
     ObscureMedia = parcel.ObscureMedia;
     ObscureMusic = parcel.ObscureMusic;
     OwnerID = parcel.OwnerID;
     PassHours = parcel.PassHours;
     PassPrice = parcel.PassPrice;
     DenyAgeUnverified = parcel.DenyAgeUnverified;
     DenyAnonymous = parcel.DenyAnonymous;
     PushOverride = parcel.PushOverride;
     SalePrice = parcel.SalePrice;
     SnapshotID = parcel.SnapshotID;
     Status = parcel.Status;
     LandingLocation = parcel.LandingLocation;
     LandingLookAt = parcel.LandingLookAt;
 }
 public NewRouteInvalidDataException(ParcelStatus parcelStatus) :
     base("Invalid parcel status: " + parcelStatus.ToString())
 {
 }
 public static ParcelSnapshot WithActiveHouseNumberIdsByTerrainObjectHouseNr
     (this ParcelSnapshot snapshot, Dictionary <CrabTerrainObjectHouseNumberId, CrabHouseNumberId> activeHouseNumberIdsByTerrainObjectHouseNr)
 {
     return(new ParcelSnapshot(new ParcelId(snapshot.ParcelId),
                               string.IsNullOrEmpty(snapshot.ParcelStatus) ? null : ParcelStatus.Parse(snapshot.ParcelStatus),
                               snapshot.IsRemoved,
                               snapshot.LastModificationBasedOnCrab,
                               activeHouseNumberIdsByTerrainObjectHouseNr,
                               snapshot.ImportedSubaddressFromCrab,
                               snapshot.AddressIds.Select(x => new AddressId(x))));
 }
 public static PerceelStatus MapToPerceelStatus(this ParcelStatus parcelStatus)
 => parcelStatus == ParcelStatus.Retired
         ? PerceelStatus.Gehistoreerd
         : PerceelStatus.Gerealiseerd;
示例#18
0
        private void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            for (int i = 0; i < listBox1.Items.Count; i++)
            {
                if (listBox1.SelectedIndex == i)
                {
                    radioButton1.Enabled = true;
                    radioButton2.Enabled = true;
                    radioButton3.Enabled = true;
                    radioButton4.Enabled = true;
                    radioButton5.Enabled = true;
                    radioButton6.Enabled = true;
                    radioButton7.Enabled = true;
                    ParcelStatus status = _parcelController.GetParcelStatusById(ConvertStringToInt(listBox1.Items[i].ToString()));
                    switch (status)
                    {
                    case ParcelStatus.AtPostingPoint:
                    {
                        radioButton1.Checked = true;
                        break;
                    }

                    case ParcelStatus.OnWayToWarehouse:
                    {
                        radioButton2.Checked = true;
                        break;
                    }

                    case ParcelStatus.InWarehouse:
                    {
                        radioButton3.Checked = true;
                        break;
                    }

                    case ParcelStatus.OnWayToTheCustomer:
                    {
                        radioButton4.Checked = true;
                        break;
                    }

                    case ParcelStatus.Returned:
                    {
                        radioButton5.Checked = true;
                        break;
                    }

                    case ParcelStatus.Delivered:
                    {
                        radioButton6.Checked = true;
                        break;
                    }

                    default:
                    {
                        radioButton7.Checked = true;
                        break;
                    }
                    }
                }
            }
        }
示例#19
0
文件: Program.cs 项目: DSanak/Parcels
 public Parcel(string trackNumber)
 {
     TrackNumber = trackNumber;
     Status      = ParcelStatus.None;
 }
 public static ParcelSnapshot WithAddressIds(this ParcelSnapshot snapshot, IEnumerable <AddressId> addressIds)
 {
     return(new ParcelSnapshot(new ParcelId(snapshot.ParcelId),
                               string.IsNullOrEmpty(snapshot.ParcelStatus) ? null : ParcelStatus.Parse(snapshot.ParcelStatus),
                               snapshot.IsRemoved,
                               snapshot.LastModificationBasedOnCrab,
                               snapshot.ActiveHouseNumberIdsByTerrainObjectHouseNr
                               .ToDictionary(
                                   x => new CrabTerrainObjectHouseNumberId(x.Key),
                                   y => new CrabHouseNumberId(y.Value)),
                               snapshot.ImportedSubaddressFromCrab,
                               addressIds));
 }
示例#21
0
 /// <summary>
 /// Defalt constructor
 /// </summary>
 /// <param name="localID">Local ID of this parcel</param>
 public Parcel(int localID)
 {
     LocalID = localID;
     SelfCount = 0;
     OtherCount = 0;
     PublicCount = 0;
     OwnerID = Guid.Empty;
     IsGroupOwned = false;
     AuctionID = 0;
     ClaimDate = Utils.Epoch;
     ClaimPrice = 0;
     RentPrice = 0;
     AABBMin = Vector3f.Zero;
     AABBMax = Vector3f.Zero;
     Bitmap = new byte[0];
     Area = 0;
     Status = ParcelStatus.None;
     SimWideMaxPrims = 0;
     SimWideTotalPrims = 0;
     MaxPrims = 0;
     TotalPrims = 0;
     OwnerPrims = 0;
     GroupPrims = 0;
     OtherPrims = 0;
     ParcelPrimBonus = 0;
     OtherCleanTime = 0;
     Flags = ParcelFlags.None;
     SalePrice = 0;
     Name = String.Empty;
     Desc = String.Empty;
     MusicURL = String.Empty;
     GroupID = Guid.Empty;
     PassPrice = 0;
     PassHours = 0;
     Category = ParcelCategory.None;
     AuthBuyerID = Guid.Empty;
     SnapshotID = Guid.Empty;
     UserLocation = Vector3f.Zero;
     UserLookAt = Vector3f.Zero;
     Landing = LandingType.None;
     Dwell = 0;
     RegionDenyAnonymous = false;
     RegionPushOverride = false;
     AccessWhiteList = new List<ParcelManager.ParcelAccessEntry>();
     AccessBlackList = new List<ParcelManager.ParcelAccessEntry>(0);
     RegionDenyAgeUnverified = false;
     Media = new ParcelMedia();
     ObscureMedia = false;
     ObscureMusic = false;
 }
示例#22
0
文件: Parcel.cs 项目: Serfin/Brivent
 public void SetStatus(ParcelStatus parcelStatus)
 {
     Status = parcelStatus;
     SetUpdateDate();
 }
示例#23
0
        /// <summary>
        /// Deserialize the message
        /// </summary>
        /// <param name="map">An <see cref="OSDMap"/> containing the data</param>
        public void Deserialize(OSDMap map)
        {
            OSDMap parcelDataMap = (OSDMap)((OSDArray)map["ParcelData"])[0];
            LocalID = parcelDataMap["LocalID"].AsInteger();
            AABBMax = parcelDataMap["AABBMax"].AsVector3();
            AABBMin = parcelDataMap["AABBMin"].AsVector3();
            Area = parcelDataMap["Area"].AsInteger();
            AuctionID = (uint)parcelDataMap["AuctionID"].AsInteger();
            AuthBuyerID = parcelDataMap["AuthBuyerID"].AsUUID();
            Bitmap = parcelDataMap["Bitmap"].AsBinary();
            Category = (ParcelCategory)parcelDataMap["Category"].AsInteger();
            ClaimDate = Utils.UnixTimeToDateTime((uint)parcelDataMap["ClaimDate"].AsInteger());
            ClaimPrice = parcelDataMap["ClaimPrice"].AsInteger();
            Desc = parcelDataMap["Desc"].AsString();

            // LL sends this as binary, we'll convert it here
            if (parcelDataMap["ParcelFlags"].Type == OSDType.Binary)
            {
                byte[] bytes = parcelDataMap["ParcelFlags"].AsBinary();
                if (BitConverter.IsLittleEndian)
                    Array.Reverse(bytes);
                ParcelFlags = (ParcelFlags)BitConverter.ToUInt32(bytes, 0);
            }
            else
            {
                ParcelFlags = (ParcelFlags)parcelDataMap["ParcelFlags"].AsUInteger();
            }
            GroupID = parcelDataMap["GroupID"].AsUUID();
            GroupPrims = parcelDataMap["GroupPrims"].AsInteger();
            IsGroupOwned = parcelDataMap["IsGroupOwned"].AsBoolean();
            LandingType = (LandingType)parcelDataMap["LandingType"].AsInteger();
            MaxPrims = parcelDataMap["MaxPrims"].AsInteger();
            MediaID = parcelDataMap["MediaID"].AsUUID();
            MediaURL = parcelDataMap["MediaURL"].AsString();
            MediaAutoScale = parcelDataMap["MediaAutoScale"].AsBoolean(); // 0x1 = yes
            MusicURL = parcelDataMap["MusicURL"].AsString();
            Name = parcelDataMap["Name"].AsString();
            OtherCleanTime = parcelDataMap["OtherCleanTime"].AsInteger();
            OtherCount = parcelDataMap["OtherCount"].AsInteger();
            OtherPrims = parcelDataMap["OtherPrims"].AsInteger();
            OwnerID = parcelDataMap["OwnerID"].AsUUID();
            OwnerPrims = parcelDataMap["OwnerPrims"].AsInteger();
            ParcelPrimBonus = (float)parcelDataMap["ParcelPrimBonus"].AsReal();
            PassHours = (float)parcelDataMap["PassHours"].AsReal();
            PassPrice = parcelDataMap["PassPrice"].AsInteger();
            PublicCount = parcelDataMap["PublicCount"].AsInteger();
            Privacy = parcelDataMap["Privacy"].AsBoolean();
            RegionDenyAnonymous = parcelDataMap["RegionDenyAnonymous"].AsBoolean();
            RegionDenyIdentified = parcelDataMap["RegionDenyIdentified"].AsBoolean();
            RegionDenyTransacted = parcelDataMap["RegionDenyTransacted"].AsBoolean();
            RegionPushOverride = parcelDataMap["RegionPushOverride"].AsBoolean();
            RentPrice = parcelDataMap["RentPrice"].AsInteger();
            RequestResult = (ParcelResult)parcelDataMap["RequestResult"].AsInteger();
            SalePrice = parcelDataMap["SalePrice"].AsInteger();
            SelectedPrims = parcelDataMap["SelectedPrims"].AsInteger();
            SelfCount = parcelDataMap["SelfCount"].AsInteger();
            SequenceID = parcelDataMap["SequenceID"].AsInteger();
            SimWideMaxPrims = parcelDataMap["SimWideMaxPrims"].AsInteger();
            SimWideTotalPrims = parcelDataMap["SimWideTotalPrims"].AsInteger();
            SnapSelection = parcelDataMap["SnapSelection"].AsBoolean();
            SnapshotID = parcelDataMap["SnapshotID"].AsUUID();
            Status = (ParcelStatus)parcelDataMap["Status"].AsInteger();
            TotalPrims = parcelDataMap["TotalPrims"].AsInteger();
            UserLocation = parcelDataMap["UserLocation"].AsVector3();
            UserLookAt = parcelDataMap["UserLookAt"].AsVector3();

            if (map.ContainsKey("MediaData")) // temporary, OpenSim doesn't send this block
            {
                OSDMap mediaDataMap = (OSDMap)((OSDArray)map["MediaData"])[0];
                MediaDesc = mediaDataMap["MediaDesc"].AsString();
                MediaHeight = mediaDataMap["MediaHeight"].AsInteger();
                MediaWidth = mediaDataMap["MediaWidth"].AsInteger();
                MediaLoop = mediaDataMap["MediaLoop"].AsBoolean();
                MediaType = mediaDataMap["MediaType"].AsString();
                ObscureMedia = mediaDataMap["ObscureMedia"].AsBoolean();
                ObscureMusic = mediaDataMap["ObscureMusic"].AsBoolean();
            }

            OSDMap ageVerificationBlockMap = (OSDMap)((OSDArray)map["AgeVerificationBlock"])[0];
            RegionDenyAgeUnverified = ageVerificationBlockMap["RegionDenyAgeUnverified"].AsBoolean();
        }
示例#24
0
        protected void TrackBtn_Click(object sender, EventArgs e)
        {
            Debug.WriteLine("Track!");
            ImageDisplay.Visible    = false;
            MapDisplayPanel.Visible = true;
            ErrorMessage.Visible    = false;
            statusList.Clear();

            TrackResult tr = ParcelController.Track(TrackingNumber.Text);

            if (tr != null)
            {
                List <TrackRecord> records = tr.Records;

                ParcelStatusRepeater.Visible = (tr.Status != 0 && tr.Status != 1);
                ShowMoreBtn.Visible          = (tr.Status != 0 && tr.Status != 1);
                MapPanel.Visible             = (tr.Status != 0 && tr.Status != 1);

                ParcelStatus.Text = tr.Status.ToString();

                if (tr.Status != 0 && tr.Status != 1)
                {
                    for (int i = 0; i < records.Count; i++)
                    {
                        ParcelStatus parcelStatus;
                        if (i == 0)
                        {
                            string status = string.Empty;
                            if (tr.Status == 2 || tr.Status == 3 || tr.Status == 5)
                            {
                                switch (tr.Status)
                                {
                                case 2:
                                    status             = "Pending in " + records[i].Departure;
                                    DepBranch.Text     = records[i].DeparturePoint;
                                    DepBranchName.Text = records[i].Departure + " Branch";
                                    ArrBranch.Text     = "";
                                    ArrBranchName.Text = "";
                                    break;

                                case 3:
                                    status             = "Pending transit from " + records[i].Departure + " to " + records[i].Arrival;
                                    DepBranch.Text     = records[i].DeparturePoint;
                                    DepBranchName.Text = records[i].Departure + " Branch";
                                    ArrBranch.Text     = records[i].ArrivalPoint;
                                    ArrBranchName.Text = records[i].Arrival + " Branch";
                                    break;

                                case 5:
                                    status             = "Pending delivery from " + records[i].Departure + " to receiver address";
                                    DepBranch.Text     = records[i].DeparturePoint;
                                    DepBranchName.Text = records[i].Departure + " Branch";
                                    ArrBranch.Text     = "";
                                    ArrBranchName.Text = "";
                                    break;
                                }
                                parcelStatus = new ParcelStatus("...", "...", status);
                            }
                            else if (tr.Status == 4)
                            {
                                parcelStatus = new ParcelStatus(
                                    records[i].DepartureDateTime?.ToShortDateString(),
                                    records[i].DepartureDateTime?.ToShortTimeString(),
                                    "Transiting from " + records[i].Departure + " to " + records[i].Arrival);
                                DepBranch.Text     = records[i].DeparturePoint;
                                DepBranchName.Text = records[i].Departure + " Branch";
                                ArrBranch.Text     = records[i].ArrivalPoint;
                                ArrBranchName.Text = records[i].Arrival + " Branch";
                            }
                            else if (tr.Status == 6)
                            {
                                status             = "Delivering from " + records[i].Departure + " to receiver address";
                                DepBranch.Text     = records[i].DeparturePoint;
                                DepBranchName.Text = records[i].Departure + " Branch";
                                ArrBranch.Text     = "";
                                ArrBranchName.Text = "";
                                parcelStatus       = new ParcelStatus(
                                    records[i].DepartureDateTime?.ToShortDateString(),
                                    records[i].DepartureDateTime?.ToShortTimeString(),
                                    status);
                            }
                            else    // 7
                            {
                                status             = "Delivered to receiver address";
                                DepBranch.Text     = "";
                                DepBranchName.Text = "";
                                ArrBranch.Text     = "";
                                ArrBranchName.Text = "";
                                parcelStatus       = new ParcelStatus(
                                    records[i].ArrivalDateTime?.ToShortDateString(),
                                    records[i].ArrivalDateTime?.ToShortTimeString(),
                                    status);
                                ImageDisplay.ImageUrl   = "Images/delivered.png";
                                ImageDisplay.Visible    = true;
                                MapDisplayPanel.Visible = false;
                            }
                        }
                        else        // previous transit
                        {
                            parcelStatus = new ParcelStatus(
                                records[i].ArrivalDateTime?.ToShortDateString(),
                                records[i].ArrivalDateTime?.ToShortTimeString(),
                                "Transited from " + records[i].Departure + " to " + records[i].Arrival);
                        }
                        statusList.Add(parcelStatus);
                    }
                }
                else
                {
                    ImageDisplay.ImageUrl   = "Images/pending.png";
                    ImageDisplay.Visible    = true;
                    MapDisplayPanel.Visible = false;
                    ErrorMessage.ForeColor  = System.Drawing.Color.Red;
                    ErrorMessage.Text       = "Parcel is pending";
                    ErrorMessage.Visible    = true;
                }
            }
            else
            {
                ImageDisplay.ImageUrl        = "Images/not-found.png";
                ImageDisplay.Visible         = true;
                MapDisplayPanel.Visible      = false;
                ParcelStatusRepeater.Visible = false;
                ShowMoreBtn.Visible          = false;
                MapPanel.Visible             = false;
                ErrorMessage.ForeColor       = System.Drawing.Color.Red;
                ErrorMessage.Text            = "Parcel not found";
                ErrorMessage.Visible         = true;
            }

            List <ParcelStatus> resultList = new List <ParcelStatus>();
            int count = (statusList.Count < limit ? statusList.Count : limit);

            for (int i = 0; i < count; i++)
            {
                resultList.Add(statusList[i]);
            }

            ShowMoreBtn.Visible = (statusList.Count > limit);

            ParcelStatusRepeater.DataSource = resultList;
            ParcelStatusRepeater.DataBind();
        }