Example #1
0
        public async Task <ActionResult <TravellerDto> > AuthenticateTraveller([FromHeader] string name)
        {
            try
            {
                if (name == null)
                {
                    return(BadRequest("Please enter traveller name."));
                }

                bool isFamous = await _travellerRepository.IsFamous(name);

                if (!isFamous)
                {
                    return(Unauthorized("Traveller " + name + " has not been in a Starwars movie."));
                }

                Traveller traveller = _travellerRepository.GetTravellerByName(name).Result;

                if (traveller == null)
                {
                    traveller = _travellerRepository.RegisterTraveller(name).Result;
                }

                var newTraveller = _mapper.Map <TravellerDto>(traveller);

                return(Ok(newTraveller));
            }
            catch (Exception e)
            {
                return(this.StatusCode(StatusCodes.Status500InternalServerError, $"Exception: {e.Message}"));
            }
        }
Example #2
0
        public ActionResult Index(int deviceNumber)
        {
            Device device = AppData.DeviceList[deviceNumber];
            Table  table  = AppData.TableList.Find(x => x.SectionID == device.SectionID && x.TableNumber == device.TableNumber);

            if (!Settings.ShowResults)
            {
                return(RedirectToAction("Index", "RegisterPlayers", new { deviceNumber, boardNumber = table.BoardNumber + 1 }));
            }
            if (Settings.ShowHandRecord)
            {
                ViewData["Buttons"] = ButtonOptions.HandsAndOK;
            }
            else
            {
                ViewData["Buttons"] = ButtonOptions.OKVisible;
            }
            Traveller traveller = new Traveller(deviceNumber, table);

            ViewData["Title"] = $"Traveller - {device.SectionTableString}:{device.Direction}";
            if (AppData.IsIndividual)
            {
                ViewData["Header"] = $"Table {device.SectionTableString} - Round {table.RoundNumber} - Board {table.BoardNumber} - {Utilities.ColourPairByVulnerability("NS", table.BoardNumber, $"{table.PairNumber[0]}+{table.PairNumber[2]}")} v {Utilities.ColourPairByVulnerability("EW", table.BoardNumber, $"{table.PairNumber[1]}+{table.PairNumber[3]}")}";
                return(View("Individual", traveller));
            }
            else
            {
                ViewData["Header"] = $"Table {device.SectionTableString} - Round {table.RoundNumber} - Board {table.BoardNumber} - {Utilities.ColourPairByVulnerability("NS", table.BoardNumber, $"NS {table.PairNumber[0]}")} v {Utilities.ColourPairByVulnerability("EW", table.BoardNumber, $"EW {table.PairNumber[1]}")}";
                return(View("Pairs", traveller));
            }
        }
        public string AddTraveller(TravellerModel travellerModel)
        {
            string result = string.Empty;

            using (HotelDBContext travellerEntities = new HotelDBContext())
            {
                try
                {
                    Traveller traveller = new Traveller();
                    traveller.FirstName    = travellerModel.FirstName;
                    traveller.MiddleName   = travellerModel.MiddleName;
                    traveller.LastName     = travellerModel.LastName;
                    traveller.MobileNo     = travellerModel.MobileNo;
                    traveller.EmailId      = travellerModel.EmailId;
                    traveller.Gender       = travellerModel.Gender;
                    traveller.Address      = travellerModel.Address;
                    traveller.FirstName_2  = travellerModel.FirstName_2;
                    traveller.MiddleName_2 = travellerModel.MiddleName_2;
                    traveller.LastName_2   = travellerModel.LastName_2;
                    traveller.CreatedOn    = System.DateTime.Now.ToShortDateString();
                    travellerEntities.Entry(traveller).State = System.Data.Entity.EntityState.Added;
                    travellerEntities.SaveChanges();
                    result = "Record Inserted";
                }
                catch (Exception ex)
                {
                    Log.Error("Failed To Insert", ex);
                    result = "Failed To Insert";
                }
                return(result);
            }
        }
Example #4
0
        /// <summary>
        /// Determine the trackItems and their location in the given tracknode.
        /// </summary>
        /// <param name="tn">The tracknode in which to search for track items</param>
        /// <returns>The list/set of track itemss together with their position information</returns>
        public IEnumerable <ChartableTrackItem> GetItemsInTracknode(TrackNode tn)
        {
            if (cachedItems.ContainsKey(tn))
            {
                return(cachedItems[tn]);
            }

            List <ChartableTrackItem> tracknodeItems = new List <ChartableTrackItem>();
            TrackVectorNode           vectorNode     = tn as TrackVectorNode;

            if (vectorNode?.TrackItemIndices == null)
            {
                return(tracknodeItems);
            }

            foreach (int trackItemIndex in vectorNode.TrackItemIndices)
            {
                TrackItem trItem = trackDB.TrackItems[trackItemIndex];
                if (trItem is PlatformItem || trItem is SpeedPostItem)
                {
                    var travellerAtItem = new Traveller(tsectionDat, trackDB.TrackNodes, vectorNode, trItem.Location, Traveller.TravellerDirection.Forward);

                    if (travellerAtItem != null)
                    {
                        tracknodeItems.Add(new ChartableTrackItem(trItem, travellerAtItem));
                    }
                }
            }
            tracknodeItems.Sort(new AlongTrackComparer());
            cachedItems[tn] = tracknodeItems;
            return(tracknodeItems);
        }
Example #5
0
        public LevelCrossingItem SearchNearLevelCrossing(Train train, float reqDist, bool trainForwards, out float frontDist)
        {
            LevelCrossingItem roadItem = LevelCrossingItem.None;

            frontDist = -1;
            Traveller traveller = trainForwards ? train.FrontTDBTraveller :
                                  new Traveller(train.RearTDBTraveller, Traveller.TravellerDirection.Backward);

            foreach (var crossing in TrackCrossingItems.Values.Where(ci => ci.CrossingGroup != null))
            {
                if (crossing.Trains.Contains(train))
                {
                    frontDist = crossing.DistanceTo(traveller, reqDist);
                    if (frontDist > 0 && frontDist <= reqDist)
                    {
                        if (RoadToTrackCrossingItems.ContainsValue(crossing))
                        {
                            roadItem = RoadToTrackCrossingItems.FirstOrDefault(x => x.Value == crossing).Key;
                            return(roadItem);
                        }
                    }
                }
            }
            return(roadItem);
        }
        public async Task <IActionResult> Checkout(int parkingId, string travellerName)
        {
            HttpClient _client         = new HttpClient();
            Traveller  travellerResult = GetTraveller(travellerName).Result;

            try
            {
                var parkings = GetParking().Result.ToList();
                var parking  = parkings.Where(x => x.ParkedSpaceship.Id == parkingId);

                var json    = JsonConvert.SerializeObject(parking);
                var content = new StringContent(json, Encoding.UTF8, "application/json");

                string url = _configuration["ApiHostUrl"] + "/api/v1.0/Parkingspot/checkout?parkingId=" + parkingId;
                HttpResponseMessage response = await _client.PutAsync(url, content);

                travellerResult = GetTraveller(travellerName).Result;
                return(View("Details", travellerResult));
            }
            catch (Exception)
            {
                TempData["msg"] = "There is something wrong...!";
                return(View("Details", travellerResult));
            }
        }
        public async Task <IHttpActionResult> CreateTraveller(Traveller traveller)
        {
            try
            {
                OperationResult operationResult = new OperationResult();
                bool            result          = await _userUtility.CreateNewTraveller(traveller);

                if (result)
                {
                    operationResult.Message    = "Success";
                    operationResult.Status     = true;
                    operationResult.StatusCode = HttpStatusCode.OK;
                }
                return(Ok(operationResult));
            }
            catch (Exception exception)
            {
                OperationResult operationResult = new OperationResult()
                {
                    Message    = exception.Message,
                    Status     = false,
                    StatusCode = HttpStatusCode.BadRequest
                };
                return(BadRequest(operationResult.Message));
            }
        }
Example #8
0
        public JsonResult AddTraveller(Traveller u)
        {
            string message = "";

            if (ModelState.IsValid)
            {
                using (BootCampEntities dc = new BootCampEntities())
                {
                    var user = dc.Travellers.Where(a => a.FirstName.Equals(u.FirstName) && a.Surname.Equals(u.Surname)).FirstOrDefault();
                    if (user == null)
                    {
                        dc.Travellers.Add(u);
                        dc.SaveChanges();
                        message = "Success";
                    }
                    else
                    {
                        message = "Traveller not available!";
                    }
                }
            }
            else
            {
                message = "Failed!";
            }
            return(new JsonResult {
                Data = message, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
Example #9
0
        public IHttpActionResult Post(Traveller packageObj)
        {
            this.repo.Insert(packageObj);
            string uri = Url.Link("GetTravellerById", new { id = packageObj.Traveller_Id });

            return(Created(uri, packageObj));
        }
Example #10
0
        public TravellerResponse SubmitFeedback(TravellerFeedbackViewModel feedbackData)
        {
            _logger.LogInfo("Trying to submit feedback with device id " + feedbackData.DeviceId);
            try
            {
                //Get Traveller info based on device id
                Traveller traveller = _travellerRepository.GetTravellerByDeviceId(feedbackData.DeviceId);
                if (traveller == null)
                {
                    throw new Exception(string.Format(_messageHandler.GetMessage(ErrorMessagesEnum.BookingWithInvalidDeviceId)));
                }

                //Convert view model to entity
                TravellerFeedback feedbackInfo = _mapper.Map <TravellerFeedback>(feedbackData);
                feedbackInfo.TravellerId = traveller.Id;
                feedbackInfo.IsActive    = true;
                _travellerRepository.SubmitFeedback(feedbackInfo);
                _logger.LogInfo("Successfully submitted feedback with device id " + feedbackData.DeviceId);
                feedbackData.DeviceId = null;
                TravellerResponse response = new TravellerResponse(true, string.Format(_messageHandler.GetSuccessMessage(SuccessMessagesEnum.SuccessfullySaved)));
                return(response);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(new TravellerResponse(false, ex.Message));
            }
        }
Example #11
0
        /// <summary>
        /// Determine the trackItems and their location in the given tracknode.
        /// </summary>
        /// <param name="tn">The tracknode in which to search for track items</param>
        /// <returns>The list/set of track itemss together with their position information</returns>
        public IEnumerable <ChartableTrackItem> GetItemsInTracknode(TrackNode tn)
        {
            if (cachedItems.ContainsKey(tn))
            {
                return(cachedItems[tn]);
            }

            List <ChartableTrackItem> tracknodeItems = new List <ChartableTrackItem>();
            TrVectorNode vectorNode = tn.TrVectorNode;

            if (vectorNode.TrItemRefs == null)
            {
                return(tracknodeItems);
            }

            foreach (int trackItemIndex in vectorNode.TrItemRefs)
            {
                TrItem trItem = trackDB.TrItemTable[trackItemIndex];
                if (supportedTrackTypes.Contains(trItem.ItemType))
                {
                    var travellerAtItem = new Traveller(tsectionDat, trackDB.TrackNodes, tn,
                                                        trItem.TileX, trItem.TileZ, trItem.X, trItem.Z, Traveller.TravellerDirection.Forward);

                    if (travellerAtItem != null)
                    {
                        tracknodeItems.Add(new ChartableTrackItem(trItem, travellerAtItem));
                    }
                }
            }
            tracknodeItems.Sort(new AlongTrackComparer());
            cachedItems[tn] = tracknodeItems;
            return(tracknodeItems);
        }
Example #12
0
        /// <summary>
        /// Заполнение базовой информации о пассажире, на основании данных из запроса
        /// </summary>
        /// <param name="passengerFromRequest"></param>
        public void Fill(Traveller passengerFromRequest, bool latinRegistration = true)
        {
            Num          = passengerFromRequest.Num;
            Type         = passengerFromRequest.Type;
            IsContact    = passengerFromRequest.IsContact;
            LinkedTo     = passengerFromRequest.LinkedTo;
            PersonalInfo = passengerFromRequest.PersonalInfo;
            DocumentInfo = passengerFromRequest.DocumentInfo;
            VisaInfo     = passengerFromRequest.VisaInfo;
            ArrAddress   = passengerFromRequest.ArrAddress;
            ContactInfo  = passengerFromRequest.ContactInfo;

            if (latinRegistration)
            {
                if (DocumentInfo != null)
                {
                    DocumentInfo.DocNum = Transliteration.UARUStoENG(passengerFromRequest.DocumentInfo.CleanDocNum).ToUpper();
                }

                if (VisaInfo != null)
                {
                    VisaInfo.BirthCity  = Transliteration.UARUStoENG(passengerFromRequest.VisaInfo.BirthCity).ToUpper();
                    VisaInfo.IssuePlace = Transliteration.UARUStoENG(passengerFromRequest.VisaInfo.IssuePlace).ToUpper();
                }

                if (ArrAddress != null)
                {
                    ArrAddress.City          = Transliteration.UARUStoENG(passengerFromRequest.ArrAddress.City).ToUpper();
                    ArrAddress.State         = Transliteration.UARUStoENG(passengerFromRequest.ArrAddress.State).ToUpper();
                    ArrAddress.StreetAddress = Transliteration.UARUStoENG(passengerFromRequest.ArrAddress.StreetAddress).ToUpper();
                }
            }
        }
Example #13
0
 /// <summary>
 /// Constructor where location is copied from the given traveller
 /// </summary>
 /// <param name="otherNode">just another node to have access to trackDB and tsectiondat</param>
 /// <param name="traveller">The traveller that contains the exact location and distance on track to initialize the node</param>
 public TrainpathVectorNode(TrainpathNode otherNode, Traveller traveller)
     : base(otherNode)
 {
     CopyDataFromTraveller(traveller);
     Location        = traveller.WorldLocation; // Not part of CopyDataFromTraveller
     ForwardOriented = true;                    // only initial setting
 }
		/// <summary>
		/// Заполнение базовой информации о пассажире, на основании данных из запроса
		/// </summary>
		/// <param name="passengerFromRequest"></param>
		public void Fill(Traveller passengerFromRequest, bool latinRegistration = true)
		{
			Num = passengerFromRequest.Num;
			Type = passengerFromRequest.Type;
			IsContact = passengerFromRequest.IsContact;
			LinkedTo = passengerFromRequest.LinkedTo;
			PersonalInfo = passengerFromRequest.PersonalInfo;
			DocumentInfo = passengerFromRequest.DocumentInfo;
			VisaInfo = passengerFromRequest.VisaInfo;
			ArrAddress = passengerFromRequest.ArrAddress;
			ContactInfo = passengerFromRequest.ContactInfo;

			if (latinRegistration)
			{
				if (DocumentInfo != null)
				{
					DocumentInfo.DocNum = Transliteration.UARUStoENG(passengerFromRequest.DocumentInfo.CleanDocNum).ToUpper();
				}

				if (VisaInfo != null)
				{
					VisaInfo.BirthCity = Transliteration.UARUStoENG(passengerFromRequest.VisaInfo.BirthCity).ToUpper();
					VisaInfo.IssuePlace = Transliteration.UARUStoENG(passengerFromRequest.VisaInfo.IssuePlace).ToUpper();
				}

				if (ArrAddress != null)
				{
					ArrAddress.City = Transliteration.UARUStoENG(passengerFromRequest.ArrAddress.City).ToUpper();
					ArrAddress.State = Transliteration.UARUStoENG(passengerFromRequest.ArrAddress.State).ToUpper();
					ArrAddress.StreetAddress = Transliteration.UARUStoENG(passengerFromRequest.ArrAddress.StreetAddress).ToUpper();
				}
			}
		}
        public async Task <IActionResult> Edit(string id, [Bind("ID,Name,Gender,Email,PhoneNumber,Address,OwnerID")] Traveller traveller)
        {
            if (id != traveller.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(traveller);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TravellerExists(traveller.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["OwnerID"] = new SelectList(_context.Set <IdentityUser>(), "Id", "Id", traveller.OwnerID);
            return(View(traveller));
        }
Example #16
0
        public IHttpActionResult PutTraveller(int id, Traveller traveller)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            if (id != traveller.TravellerID)
            {
                return BadRequest();
            }

            db.Entry(traveller).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TravellerExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return StatusCode(HttpStatusCode.NoContent);
        }
Example #17
0
        public static string PrepareLoginResponse(string loginRequest)
        {
            string[] loginParams = loginRequest.Split('?');
            string   login       = loginParams[(int)LoginParam.Login];
            string   password    = loginParams[(int)LoginParam.Password];

            Console.WriteLine(" Login credentials: ({0})", login);
            //TESTOWANIE WATKOW
            // 0) ODKOMENTUJ SLEEPA
            // 1) OTWORZ STRONE LOGOWANIA I WYSZUKIWANIA
            // 2) PRZYGOTUJ DANE LOGOWANIA I DANE WYSZUKIANIA
            // 3) KLIKNIJ ZALOGUJ, !!POTEM!! KLIKNIJ WYSZUKAJ
            // WYNIK: WYSZUKIWANIE POWINNO ZOSTAĆ ZWROCONE PRZED ZALOGOWANIEM
            //Thread.Sleep(15000);
            //Console.WriteLine("Login threads wakes up");
            TravellerRepository travellerRepository = new TravellerRepository();
            Traveller           traveller           = travellerRepository.FindUserByLogin(login);

            if (traveller == null)
            {
                return(new UserDataResponse(false).ToString());
            }
            UserDataResponse loginResponse = traveller.password == password
                ? new UserDataResponse(true,
                                       traveller.id, traveller.first_name, traveller.last_name, traveller.email, traveller.login)
                : new UserDataResponse(false);

            return(loginResponse.ToString());
        }
        public void ExpectToSendEmailAndCreateNewLoginTravellerUser()
        {
            //--setup
            var            accountRep = new Mock <IAccountRepository>();
            LoginTraveller lt         = new LoginTraveller()
            {
                Id = "phony"
            };

            accountRep.Setup(x => x.FindByFK(It.IsAny <int>())).Returns(lt);
            var dapperUOW    = new Mock <IDapperUnitOfWork>();
            var emailer      = new Mock <IEmailSender>();
            var logger       = new Mock <ILogger <SecurityManager> >();
            var travellerRep = new Mock <ITravellerRepository>();
            var helper       = new Mock <ISiteHelper>();
            IList <Traveller> travellerCollection = new List <Traveller>();
            Traveller         fakeTraveller       = new Traveller()
            {
                Firstname = "tester"
            };

            travellerCollection.Add(fakeTraveller);
            travellerRep.Setup(x => x.GetByEmail(It.IsAny <string>())).Returns(travellerCollection);
            dapperUOW.Setup(x => x.TravellerRepository).Returns(travellerRep.Object);
            helper.Setup(x => x.ReadFileContentAsync(It.IsAny <string>())).Returns(Task <string> .FromResult("se"));
            //-- act
            SecurityManager sm     = new SecurityManager(accountRep.Object, emailer.Object, dapperUOW.Object, logger.Object, helper.Object);
            var             result = sm.EmailSecurityCodeToNewUserAsync("phony", "tester", "http://returnvalue");

            //-- assert
            Assert.True(result.Result);
            Assert.True(lt.SecurityToken != String.Empty, "Security Token should not be empty");
        }
Example #19
0
        /// <summary>
        /// 设置旅客为默认常用旅客
        /// </summary>
        /// <param name="id">常用旅客的ID</param>
        /// <returns></returns>
        internal static ReplayBase SetTravellerToDefault(string id)
        {
            ReplayBase result = new ReplayBase();

            //通过id获取fkid
            List <Traveller> trave = MembersExService.RsGetTravellerInfoByfkid(new GetUserExInfoListRequest()
            {
                id = id, onlyDefalut = false
            });

            if (trave.Count > 0)
            {
                Traveller travellerInfo = new Traveller()
                {
                    ravellerId = id,
                    fkId       = trave[0].fkId,
                    fullName   = trave[0].fullName,
                    idCard     = trave[0].idCard,
                    idType     = trave[0].idType,
                    isDefault  = true
                };
                result = MembersExService.RsSaveTraveller(travellerInfo);
            }
            else
            {
                result.ReturnCode    = EnumErrorCode.ServiceError;
                result.ReturnMessage = "服务器错误 500";
            }

            return(result);
        }
Example #20
0
 /// <summary>
 /// Copy some relevant data from a traveller, specifically the track data
 /// </summary>
 /// <param name="traveller"></param>
 public void CopyDataFromTraveller(Traveller traveller)
 {
     TvnIndex = traveller.TrackNodeIndex;
     TrackVectorSectionIndex = traveller.TrackVectorSectionIndex;
     TrackSectionOffset      = traveller.TrackNodeOffset - GetSectionStartDistance();
     trackAngleForward       = traveller.RotY;
 }
		/// <summary>
		/// Заполнение общих с пассажиром из запроса полей 
		/// </summary>
		/// <param name="basePass">Базовый класс для пассажиров</param>
		public BookedTraveller(Traveller basePass)
		{
			ContactInfo = basePass.ContactInfo;
			DocumentInfo = basePass.DocumentInfo;
			IsContact = basePass.IsContact;
			LinkedTo = basePass.LinkedTo;
			PersonalInfo = basePass.PersonalInfo;
			Type = basePass.Type;
			ArrAddress = basePass.ArrAddress;
			LoyaltyCards = basePass.LoyaltyCards;
			Num = basePass.Num;
			VisaInfo = basePass.VisaInfo;

			if (DocumentInfo != null)
			{
				DocumentInfo.DocNum = Transliteration.UARUStoENG(basePass.DocumentInfo.CleanDocNum).ToUpper();
			}

			if (VisaInfo != null)
			{
				VisaInfo.BirthCity = Transliteration.UARUStoENG(basePass.VisaInfo.BirthCity).ToUpper();
				VisaInfo.IssuePlace = Transliteration.UARUStoENG(basePass.VisaInfo.IssuePlace).ToUpper();
			}

			if (ArrAddress != null)
			{
				ArrAddress.City = Transliteration.UARUStoENG(basePass.ArrAddress.City).ToUpper();
				ArrAddress.State = Transliteration.UARUStoENG(basePass.ArrAddress.State).ToUpper();
				ArrAddress.StreetAddress = Transliteration.UARUStoENG(basePass.ArrAddress.StreetAddress).ToUpper();
			}
		}
Example #22
0
        /// <summary>
        /// Заполнение общих с пассажиром из запроса полей
        /// </summary>
        /// <param name="basePass">Базовый класс для пассажиров</param>
        public BookedTraveller(Traveller basePass)
        {
            ContactInfo  = basePass.ContactInfo;
            DocumentInfo = basePass.DocumentInfo;
            IsContact    = basePass.IsContact;
            LinkedTo     = basePass.LinkedTo;
            PersonalInfo = basePass.PersonalInfo;
            Type         = basePass.Type;
            ArrAddress   = basePass.ArrAddress;
            LoyaltyCards = basePass.LoyaltyCards;
            Num          = basePass.Num;
            VisaInfo     = basePass.VisaInfo;

            if (DocumentInfo != null)
            {
                DocumentInfo.DocNum = Transliteration.UARUStoENG(basePass.DocumentInfo.CleanDocNum).ToUpper();
            }

            if (VisaInfo != null)
            {
                VisaInfo.BirthCity  = Transliteration.UARUStoENG(basePass.VisaInfo.BirthCity).ToUpper();
                VisaInfo.IssuePlace = Transliteration.UARUStoENG(basePass.VisaInfo.IssuePlace).ToUpper();
            }

            if (ArrAddress != null)
            {
                ArrAddress.City          = Transliteration.UARUStoENG(basePass.ArrAddress.City).ToUpper();
                ArrAddress.State         = Transliteration.UARUStoENG(basePass.ArrAddress.State).ToUpper();
                ArrAddress.StreetAddress = Transliteration.UARUStoENG(basePass.ArrAddress.StreetAddress).ToUpper();
            }
        }
Example #23
0
        public ActionResult SaveTravellerProfile(TravellerProfileViewModel profileView)
        {
            Traveller _travellerProfile = null;
            // get the traveller profile, if exists
            var _blError = TravellerProfileManager.GetTravellerProfile(User.Identity.GetUserId(), out _travellerProfile);

            // if not found, create a new profile
            if (_blError.ErrorCode != 0 || _travellerProfile == null)
            {
                _travellerProfile = new Traveller();
            }

            _travellerProfile.FirstName       = profileView.FirstName;
            _travellerProfile.LastName        = profileView.LastName;
            _travellerProfile.Telephone       = profileView.Telephone;
            _travellerProfile.Mobile          = profileView.Mobile;
            _travellerProfile.AddressLine1    = profileView.AddressLine1;
            _travellerProfile.AddressLine2    = profileView.AddressLine2;
            _travellerProfile.City            = profileView.City;
            _travellerProfile.Country         = profileView.Country;
            _travellerProfile.PostCode        = profileView.PostCode;
            _travellerProfile.TravelGroupSize = profileView.TravelGroupSize;
            _travellerProfile.TravelStyle     = profileView.TravelStyle;
            _travellerProfile.TravelInterests = _GetInterests(profileView.TravellerInterests);

            _travellerProfile.AspnetUserid = User.Identity.GetUserId();

            _blError = TravellerProfileManager.UpdateUserTravellerProfile(_travellerProfile);

            return(RedirectToAction("TravellerProfile"));
        }
Example #24
0
        public static string PrepareRegisterResponse(string registerRequest)
        {
            string[] registerParams = registerRequest.Split('?');
            Console.WriteLine(" Register credentials: ({0})", registerRequest);

            TravellerRepository travellerRepository = new TravellerRepository();
            Traveller           traveller           = travellerRepository.FindUserByLogin(registerParams[(int)RegisterParam.Login]);

            if (traveller == null)
            {
                traveller = new Traveller
                {
                    id         = travellerRepository.NextId(),
                    first_name = registerParams[(int)RegisterParam.FirstName],
                    last_name  = registerParams[(int)RegisterParam.LastName],
                    email      = registerParams[(int)RegisterParam.Email],
                    login      = registerParams[(int)RegisterParam.Login],
                    password   = registerParams[(int)RegisterParam.Password]
                };
                travellerRepository.Add(traveller);
                return(new UserDataResponse(true,
                                            traveller.id, traveller.first_name, traveller.last_name, traveller.email, traveller.login).ToString());
            }

            return(new UserDataResponse(false).ToString());
        }
Example #25
0
        public async Task <IActionResult> Edit(int id, [Bind("TravellerID,TravellerName,ContactNumber,StaffMemberName")] Traveller traveller)
        {
            if (id != traveller.TravellerID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(traveller);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TravellerExists(traveller.TravellerID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["StaffMemberID"] = new SelectList(_context.StaffMember, "StaffMemberName", "StaffMemberName", traveller.StaffMemberID);
            return(View(traveller));
        }
Example #26
0
 private void removeBtn_Click(object sender, EventArgs e)
 {
     if (allTravellersDataGrid.CurrentRow != null)
     {
         Traveller travellerToRemove = (Traveller)allTravellersDataGrid.CurrentRow.DataBoundItem;
         allTravellers.Remove(travellerToRemove);
     }
 }
        /// <summary>
        /// Create traveller
        /// </summary>
        /// <param name="traveller">Model of traveller</param>
        public Traveller CreateTraveller(Traveller traveller)
        {
            var response = Service.CreateTraveller(traveller);

            var cratedTraveller = JsonConvert.DeserializeObject <Traveller>(response.Content);

            return(cratedTraveller);
        }
Example #28
0
        private void OnPlayerTeleport(Traveller player, Portal source, Portal destination)
        {
            Cell sourceCell      = this.portalToCell[source];
            Cell destinationCell = this.portalToCell[destination];

            destination.Destination = source;

            this.RebuildMaze(new Cell[] { sourceCell, destinationCell });
        }
Example #29
0
        //no use anymore
        public static int DecomposeStaticSuperElevation(Viewer viewer, List <DynamicTrackViewer> dTrackList, int TileX, int TileZ)
        {
            var key = (int)(Math.Abs(TileX) + Math.Abs(TileZ));

            if (!viewer.Simulator.SuperElevation.Sections.ContainsKey(key))
            {
                return(0);                                                           //cannot find sections associated with this tile
            }
            var sections = viewer.Simulator.SuperElevation.Sections[key];

            if (sections == null)
            {
                return(0);
            }

            WorldLocation location        = new WorldLocation();
            Vector3       directionVector = new Vector3();

            foreach (var ts in sections)
            {
                var tss = viewer.Simulator.TSectionDat.TrackSections.Get(ts.SectionIndex);
                if (tss == null || tss.SectionCurve == null || ts.WFNameX != TileX || ts.WFNameZ != TileZ)
                {
                    continue;
                }
                location.TileX      = ts.TileX;
                location.TileZ      = ts.TileZ;
                location.Location.X = ts.X;
                location.Location.Y = ts.Y;
                location.Location.Z = ts.Z;
                directionVector.X   = ts.AX;
                directionVector.Y   = ts.AY;
                directionVector.Z   = ts.AZ;
                Vector3       trackLoc = new Vector3(ts.X, ts.Y, -ts.Z);
                WorldPosition root     = new WorldPosition(); root.TileX = ts.TileX; root.TileZ = ts.TileZ;
                root.XNAMatrix = Matrix.CreateFromYawPitchRoll(-ts.AY, -ts.AX, ts.AZ);// CreateRotationX(-ts.AY) * Matrix.CreateRotationY(-ts.AX) * Matrix.CreateRotationZ(ts.AZ);

                root.XNAMatrix.Translation  = Vector3.Zero;
                root.XNAMatrix.Translation += Vector3.Transform(trackLoc, Matrix.Identity);

                var     sign = -Math.Sign(tss.SectionCurve.Angle); var to = Math.Abs(tss.SectionCurve.Angle * 0.0174f);
                var     vectorCurveStartToCenter = Vector3.Left * tss.SectionCurve.Radius * sign;
                var     curveRotation            = Matrix.CreateRotationY(to * sign);
                Vector3 dummy;
                var     displacement = Traveller.MSTSInterpolateAlongCurve(Vector3.Zero, vectorCurveStartToCenter, curveRotation, root.XNAMatrix, out dummy);

                WorldPosition nextRoot = new WorldPosition(root);
                nextRoot.XNAMatrix.Translation = displacement;

                dir = 1f;
                sv  = ts.StartElev; ev = ts.EndElev; mv = ts.MaxElev;

                //nextRoot.XNAMatrix.Translation += Vector3.Transform(trackLoc, worldMatrix.XNAMatrix);
                dTrackList.Add(new SuperElevationViewer(viewer, root, nextRoot, tss.SectionCurve.Radius, tss.SectionCurve.Angle * 3.14f / 180, sv, ev, mv, dir));
            }
            return(1);
        }
Example #30
0
        public ShipData(Traveller.Starship ship)
        {
            InitializeComponent();

            loadShip(ship);
            this.myShip = ship;
            btnAdd.Text = "update current ship";
            this.isNew = true;
        }
Example #31
0
 void OnTravellerEnter(Traveller traveller)
 {
     if (!travellers.Contains(traveller))
     {
         traveller.oldPos = traveller.transform.position;
         traveller.OnEnter();
         travellers.Add(traveller);
     }
 }
Example #32
0
        protected void Login_Click(object sender, EventArgs e)
        {
            System.Threading.Thread.Sleep(2000);

            TravellerController travellerController = new TravellerController();

            try
            {
                string userName = txtUsername.Text;
                string password = txtPassword.Text;

                bool verified = travellerController.VerifyCredentials(userName, password);

                if (verified == true)
                {
                    Traveller user = travellerController.GetTravellerByUserName(userName);
                    user.UserName = userName;

                    if (user != null)
                    {
                        Session[AppData.USERID]       = user.TravellerID;
                        Session[AppData.USERNAME]     = user.UserName;
                        Session[AppData.FIRSTNAME]    = user.FirstName;
                        Session[AppData.LASTNAME]     = user.LastName;
                        Session[AppData.COUNTRY]      = user.Country;
                        Session[AppData.EMAIL]        = user.Email;
                        Session[AppData.LOGGEDIN]     = true;
                        Session[AppData.LOGGEDINTIME] = DateTime.UtcNow;

                        Response.Redirect("default.aspx?", false);
                        Context.ApplicationInstance.CompleteRequest();
                    }
                    else
                    {
                        var msg = AppData.CreateAlert("There was an error while logging you in.", "danger");
                        loginErrPlaceholder.Controls.Add(msg);

                        string logMessage = "Error: User tried to login with verified credentials, but no user was created.";
                        logger.Error(logMessage);
                    }
                }
                else
                {
                    var msg = AppData.CreateAlert("Invalid username and/or password", "danger");
                    loginErrPlaceholder.Controls.Add(msg);
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
            }
            finally
            {
                travellerController.Dispose();
            }
        }
Example #33
0
        public IHttpActionResult GetTraveller(int id)
        {
            Traveller traveller = db.Travellers.Find(id);
            if (traveller == null)
            {
                return NotFound();
            }

            return Ok(traveller);
        }
		/// <summary>
		/// Создание информации о пассажире для модификации
		/// </summary>
		/// <param name="oldInfo">Старая информация о пассажире</param>
		/// <returns>Новая информация о пассажире</returns>
		public Traveller CreateTravellerForModify(BookedTraveller oldInfo)
		{
			Traveller res = new Traveller();
			res.Type = oldInfo.Type;
			res.Num = oldInfo.Num;

			if (ArrAddress != null)
			{
				res.ArrAddress = ArrAddress;
			}

			if (ContactInfo != null)
			{
				res.ContactInfo = ContactInfo.CreateContactForModify(oldInfo.ContactInfo);
			}

			if (DocumentInfo != null)
			{
				res.DocumentInfo = DocumentInfo;
			}

			if (Meal.HasValue)
			{
				res.Meal = Meal.ToString();
			}

			if (PersonalInfo != null)
			{
				res.PersonalInfo = PersonalInfo.CreateTravellerForModify(oldInfo.PersonalInfo);
			}

			if (PreferedPlaces != null && PreferedPlaces.Count > 0)
			{
				res.PreferedPlaces = new List<PreferedPlace>();

				foreach (var place in PreferedPlaces)
				{
					PreferedPlace newPlace = place.CreatePlaceForModify();

					if (newPlace != null)
					{
						res.PreferedPlaces.Add(newPlace);
					}
				}
			}

			if (VisaInfo != null)
			{
				res.VisaInfo = VisaInfo;
			}

			return res;
		}
Example #35
0
        public DisplayWorld(Traveller.World world)
        {
            InitializeComponent();

            this.world = world;
            lblSEC.Text = world.SEC;
            lblWorld.Text = world.Name;

            this.Text = "System Data for " + world.Name;

            showData(world);
        }
Example #36
0
        /// <summary>
        /// selling a cargo lot
        /// </summary>
        /// <param name="cargo">cargo structure - item we are selling</param>
        /// <param name="ship">Traveller starship - ship it is being sold from</param>
        /// <param name="world">Traveller world - world it is being sold on</param>
        public Selling(Traveller.Starship.cargoDesc cargo, Traveller.Starship ship, Traveller.World world)
        {
            InitializeComponent();

            lblCurrent.Text = world.SEC;
            lblSelling.Text = String.Format("{0} {1} dTons; Cr{2}", cargo.origCode, cargo.dtons, cargo.purchasePrice);
            lblDesc.Text = cargo.desc;
            lblOrigSystem.Text = cargo.origSEC;
            edDM.Text = ship.TradeDM.ToString();

            this.world = world;
            this.cargo = cargo;
            this.ship = ship;

            // and set the selling info
            this.cargo.sellingDate = this.ship.Date;
            this.cargo.destSEC = this.world.SEC;
        }
Example #37
0
        private void showWorld(Traveller.World world)
        {
            Traveller.TravUtils util = new Traveller.TravUtils();
            lvData.Items.Clear();
            edNotes.Clear();
            edNPC.Clear();
            tabInfo.SelectedIndex = 0;  // reset to basic info

            ListViewItem li = new ListViewItem("Starport");
            li.SubItems.Add(world.Starport.ToString());
            lvData.Items.Add(li);
            li = new ListViewItem("Size");
            li.SubItems.Add(world.Size.ToString() + " " + world.descSize);
            lvData.Items.Add(li);
            li = new ListViewItem("Atmosphere");
            li.SubItems.Add(world.Atmosphere.ToString() + " " + world.descAtmo);
            lvData.Items.Add(li);
            li = new ListViewItem("Hydrographics");
            li.SubItems.Add(world.Hydrographics.ToString() + " " + world.descHydro);
            lvData.Items.Add(li);
            li = new ListViewItem("Population");
            li.SubItems.Add(world.Population.ToString() + " " + world.descPop);
            lvData.Items.Add(li);
            li = new ListViewItem("Government");
            li.SubItems.Add(world.Government.ToString() + " " + world.descGov);
            lvData.Items.Add(li);
            li = new ListViewItem("Law Level");
            li.SubItems.Add(world.LawLevel.ToString());
            lvData.Items.Add(li);
            li = new ListViewItem("Tech Level");
            li.SubItems.Add(world.TechLevel.ToString());
            lvData.Items.Add(li);

            li = new ListViewItem("Travel code");
            li.SubItems.Add(world.TravelCode);
            switch (world.TravelCode.ToLower())
            {
                case "red":
                    li.SubItems[0].BackColor = System.Drawing.Color.Red;
                    break;
                case "amber":
                    li.SubItems[0].BackColor = System.Drawing.Color.Yellow;
                    break;
                case "green":
                    li.SubItems[0].BackColor = System.Drawing.Color.Green;
                    break;
                default:
                    break;
            }
            lvData.Items.Add(li);

            li = new ListViewItem("Stellar info");
            li.SubItems.Add(world.Stellar);
            lvData.Items.Add(li);
            li = new ListViewItem("Gas giants");
            li.SubItems.Add(world.GasGiant.ToString());
            lvData.Items.Add(li);
            li = new ListViewItem("Asteroid belts");
            li.SubItems.Add(world.Belts.ToString());
            lvData.Items.Add(li);

            lbTradeCodes.Items.Clear();
            foreach (Traveller.World.stTrade tc in world.TradeClass)
            {
                lbTradeCodes.Items.Add(tc.code + " " + tc.desc);
            }

            if (world.Misc.Count > 0)
            {
                li = new ListViewItem(" ");
                li.SubItems.Add("Extensions");
                li.BackColor = System.Drawing.Color.DarkSalmon;
                lvData.Items.Add(li);
                foreach (string ext in world.Misc)
                {
                    string[] exts = ext.Split(new char[] { ':' });
                    li = new ListViewItem(exts[0]);
                    li.SubItems.Add(exts[1]);
                    lvData.Items.Add(li);
                }
            }

            lblAlliance.Text = world.Alliance + " " + world.descAlliance;

            // show the notes - for some reason it is doing odd on CR/LF
            string[] noteString = world.Notes.Split(new char[] { '\n' });
            StringBuilder newNotes = new StringBuilder();
            foreach (string s in noteString)
            {
                newNotes.Append(s + Environment.NewLine);
            }
            edNotes.Text = newNotes.ToString();

            lblSEC.Text = world.SEC;
            sbCurrentWorld.Text = ship.SectorName + "/" + world.Name;

            showJ6();
            showImage(this.world);

            // and the web page
            string sectorName = ship.SectorName.Replace(' ', '+');
            string url = String.Format("http://www.travellermap.com/iframe.htm?sector={0}&hex={1}",
                sectorName, world.Hex);
            //string url = String.Format("http://www.travellermap.com/JumpMap.aspx?Sector={0}&hex={1}&jump={2}&scale=48&options=48",
            //    sectorName, world.Hex, ship.Jump);
            webView1.Url = url;

            loadImages();
        }
Example #38
0
        private void showData(Traveller.World world)
        {
            ListViewItem li = new ListViewItem("Starport");
            li.SubItems.Add(world.Starport.ToString());
            lvData.Items.Add(li);
            li = new ListViewItem("Size");
            li.SubItems.Add(world.Size.ToString() + " " + world.descSize);
            lvData.Items.Add(li);
            li = new ListViewItem("Atmosphere");
            li.SubItems.Add(world.Atmosphere.ToString() + " " + world.descAtmo);
            lvData.Items.Add(li);
            li = new ListViewItem("Hydrographics");
            li.SubItems.Add(world.Hydrographics.ToString() + " " + world.descHydro);
            lvData.Items.Add(li);
            li = new ListViewItem("Population");
            li.SubItems.Add(world.Population.ToString() + " " + world.descPop);
            lvData.Items.Add(li);
            li = new ListViewItem("Government");
            li.SubItems.Add(world.Government.ToString() + " " + world.descGov);
            lvData.Items.Add(li);
            li = new ListViewItem("Law Level");
            li.SubItems.Add(world.LawLevel.ToString());
            lvData.Items.Add(li);
            li = new ListViewItem("Tech Level");
            li.SubItems.Add(world.TechLevel.ToString());
            lvData.Items.Add(li);

            li = new ListViewItem("Travel code");
            li.SubItems.Add(world.TravelCode);
            switch (world.TravelCode.ToLower())
            {
                case "red":
                    li.SubItems[0].BackColor = System.Drawing.Color.Red;
                    break;
                case "amber":
                    li.SubItems[0].BackColor = System.Drawing.Color.Yellow;
                    break;
                case "green":
                    li.SubItems[0].BackColor = System.Drawing.Color.Green;
                    break;
                default:
                    break;
            }
            lvData.Items.Add(li);

            li = new ListViewItem("Stellar info");
            li.SubItems.Add(world.Stellar);
            lvData.Items.Add(li);
            li = new ListViewItem("Gas giants");
            li.SubItems.Add(world.GasGiant.ToString());
            lvData.Items.Add(li);
            li = new ListViewItem("Asteroid belts");
            li.SubItems.Add(world.Belts.ToString());
            lvData.Items.Add(li);

            li = new ListViewItem("Trade codes");
            string trades= "";
            foreach (Traveller.World.stTrade tc in world.TradeClass)
            {
                trades += tc.code + " " + tc.desc + " ";
            }
            li.SubItems.Add(trades);
            lvData.Items.Add(li);

            li = new ListViewItem("Alliances");
            li.SubItems.Add(world.Alliance + " " + world.descAlliance);
            lvData.Items.Add(li);

            edNotes.Text = world.Notes;
            edNPC.Text = world.NPCNotes;

            showImage(world);
        }
Example #39
0
 public AddWorldImage(Traveller.World world)
 {
     InitializeComponent();
     this.Text = "add image to " + world.Name;
     this.myworld = world;
 }
Example #40
0
        private void loadShip(Traveller.Starship ship)
        {
            edName.Text = ship.Name;
            edMan.Value = ship.Man;
            edPower.Value = ship.Power;
            edJump.Value = ship.Jump;
            edCargo.Text = ship.Cargo.ToString();
            edMonthly.Text = ship.MonthlyCosts.ToString();
            edPerJump.Text = ship.PerJumpCost.ToString();
            edCredits.Text = ship.Credits.ToString();
            switch (ship.Version)
            {
                case "CT":
                    rbCT.Checked = true;
                    break;
                case "T5":
                    rbT5.Checked = true;
                    break;
                case "MT":
                    rbMongoose.Checked = true;
                    break;
                case "CU":
                    rbCustom.Checked = true;
                    break;
                default:
                    break;
            }

            rbCT.Enabled = false;
            rbT5.Enabled = false;
            rbMongoose.Enabled = false;
            rbCustom.Enabled = false;
            edName.Enabled = false;

            edDay.Text = ship.Day.ToString();
            edYear.Text = ship.Year.ToString();

            lblDataFile.Text = ship.SECDataFile;
            edSectorName.Text = ship.SectorName;
            edTradeDM.Value = ship.TradeDM;
            loadDataFile(ship.SECDataFile);
            cbWorld.SelectedIndex = cbWorld.FindString(ship.SEC, 0);
        }
Example #41
0
        /// <summary>
        /// sell Mongoose Traveller cargo item
        /// </summary>
        /// <param name="cargo">cargo item to sell</param>
        /// <param name="world">world we are selling on</param>
        /// <param name="DM">int - DM for actual price</param>
        /// <returns>cargo - updated cargo (selling price updated)</returns>
        private Traveller.Starship.cargoDesc MTSell(Traveller.Starship.cargoDesc cargo, Traveller.World world, int DM)
        {
            // 1. load our goods table, and our actual value table
            List<string> MTGoods = util.loadCSV("MTGoods.csv");
            List<string> avTable = util.loadCSV("MTValue.csv");

            // 2. find our cargo in that list
            int sellDM = 0;
            bool foundit = false;

            foreach (string lot in MTGoods)
            {
                string[] item = lot.Split(new char[] { ',' });
                if (item[1] == cargo.desc)          // found the item
                {
                    int.TryParse(item[2], out cargo.basecostsell);
                    string[] sellmods = item[5].Split(new char[] { ' ' });
                    foreach (string sellmod in sellmods)
                    {
                        foreach (Traveller.World.stTrade wtc in world.TradeClass)
                        {
                            if (sellmod.StartsWith(wtc.code))
                            {
                                int dm = 0;
                                int.TryParse(sellmod[3].ToString(), out dm);
                                if (sellmod[2] == '+')
                                    sellDM += dm;
                                else
                                    sellDM -= dm;
                            }
                        }
                    }
                    foundit = true;
                    break;
                }
            }

            if (foundit)
            {
                // and now roll on our actual value buy table;
                // this table allows for -1, so -1 = 0 position, 0 = 1 position; so we add 1 to compensate
                int roll = util.rollDx(6) + util.rollDx(6) + util.rollDx(6) + sellDM + DM + 1;
                string[] av = avTable[roll].Split(new char[] { ',' });
                cargo.avSell = Convert.ToDouble(av[2]);
                cargo.sellingPrice = (int)((double)cargo.basecostsell * (double)cargo.dtons * cargo.avSell);
            }
            else
            {
                cargo.avSell = 0;
                cargo.basecostsell = cargo.basecostbuy;
                cargo.sellingPrice = cargo.basecostbuy * cargo.dtons;
            }

            return cargo;
        }
Example #42
0
 protected virtual Person CreatePerson(string personTypeString, string personNameString, Location personLocation)
 {
     Person person = null;
     switch (personTypeString)
     {
         case "shopkeeper":
             person = new Shopkeeper(personNameString, personLocation);
             break;
         case "traveller":
             person = new Traveller(personNameString, personLocation);
             break;
         default:
             break;
     }
     return person;
 }
Example #43
0
        private Traveller.Starship.cargoDesc T5Sell(Traveller.Starship.cargoDesc cargo, Traveller.World world, int DM)
        {
            int baseprice = 5000;

            // get the original trade codes from the origCode
            string[] tc = cargo.origCode.Split(new char[] { ' ' });
            int origTL = util.HexToInt(tc[0]);      // cargo original world tech level

            // get a list of the selling worlds trade codes
            List<string> sellingTC = new List<string>();
            foreach (Traveller.World.stTrade sw in world.TradeClass)
            {
                sellingTC.Add(sw.code);
            }

            // T5 selling matrix
            string[] tcMod = File.ReadAllLines("T5Selling.csv");
            foreach (string line in tcMod)
            {
                for (int i = 2; i < tc.Length - 1; i++)
                {
                    if (line.StartsWith(tc[i]))                         // matching orig code trade code
                    {
                        string[] s = line.Split(new char[] { ',' });    // get the internal trade codes
                        int mod = Convert.ToInt32(s[s.Length - 1]);     // Cr mod
                        for (int j = 1; j < s.Length - 1; j++)          // don't include 1st or Cr mod
                        {
                            if (sellingTC.Contains(s[j]))               // we have a match
                                baseprice += mod;
                        }
                    }
                }
            }

            // and the TL mod: 10% (source TL - selling world TL)
            int tlDiff = origTL - util.HexToInt(world.TechLevel.ToString());    // difference in TL
            int tlPriceMod = (int)((double)baseprice * 0.10 * (double)tlDiff);
            baseprice += tlPriceMod;

            // and now our actual value roll
            // make sure we're within range; if not, reset
            DataTable actualValue = util.loadTable("T5Value.csv");
            int av = util.flux() + DM;
            int lowball = Convert.ToInt32(actualValue.Rows[0][0].ToString());
            if (av < lowball)
                av = lowball;
            int highball = Convert.ToInt32(actualValue.Rows[actualValue.Rows.Count - 1][0].ToString());
            if (av > highball)
                av = highball;

            // now to find that flux roll in our table
            double avMod = 0;
            for (int i = 0; i < actualValue.Rows.Count; i++)
            {
                if (Convert.ToInt32(actualValue.Rows[i][0].ToString()) == av)
                {
                    avMod = Convert.ToDouble(actualValue.Rows[i][2].ToString());
                    break;
                }
            }
            if (avMod == 0)
                avMod = 1;

            cargo.basecostsell = baseprice;
            cargo.sellingPrice = (int)((double)baseprice * avMod) * cargo.dtons;
            cargo.avSell = avMod;
            return cargo;
        }
Example #44
0
 /// <summary>
 /// trade instantiation
 /// </summary>
 /// <param name="ship">ship - Traveller ship object</param>
 /// <param name="world">world - Traveller world object</param>
 /// <remarks>deals with cargo</remarks>
 public Trade(Traveller.Starship ship, Traveller.World w)
 {
     this.errmsg = "";
     this.world = w;
     this.ship = ship;
     this.cargoes = new List<Starship.cargoDesc>();
     this.version = ship.Version;
 }
Example #45
0
        /// <summary>
        /// sell cargo, CT style
        /// </summary>
        /// <param name="cargo">cargoDesc - cargo item to sell</param>
        /// <param name="world">world object - where we are selling it</param>
        /// <param name="DM">int - any DMs to modifiy the actual value table</param>
        /// <returns></returns>
        private Traveller.Starship.cargoDesc CTSell(Traveller.Starship.cargoDesc cargo, Traveller.World world, int DM)
        {
            // 1. find our cargo in the trade table
            List<string> cargos = util.loadCSV("CTGoods.csv");

            string lot = "";
            foreach (string sCargo in cargos)
            {
                string[] l = sCargo.Split(new char[] { ',' });
                if (l[1] == cargo.desc)
                {
                    lot = sCargo;
                    break;
                }
            }

            if (lot.Length == 0)
            {
                cargo.sellingPrice = cargo.purchasePrice;
                return cargo;
            }

            // ok, we've found the cargo
            string[] tg = lot.Split(new char[] { ',' });
            int.TryParse(tg[2], out cargo.basecostsell);    // base price for selling

            // figure out the mods
            // must match current (selling) world's trade codes
            int mods = DM;
            string[] tccodes = new string[] { "Ag", "Na", "In", "Ni", "Ri", "Po" };
            for (int i = 10; i <= 15; i++)
            {
                foreach (Traveller.World.stTrade tc in world.TradeClass)
                {
                    if (tc.code == tccodes[i - 10])
                    {
                        int tMod = 0;
                        int.TryParse(tg[i], out tMod);
                        mods += tMod;
                    }
                }
            }

            // and roll on the actual value table
            List<string> actualValue = util.loadCSV("CTValue.CSV");
            int roll = util.rollDx(6) + util.rollDx(6) + mods + ship.TradeDM  - 2;  // -2 for 0-based roll
            if (roll < 0)
                roll = 0;
            if (roll > 14)
                roll = 14;
            string[] av = actualValue[roll].Split(new char[] { ',' });
            cargo.avSell = Convert.ToDouble(av[1]);
            cargo.sellingPrice = (int)((double)cargo.basecostsell * cargo.avSell) * cargo.dtons;

            return cargo;
        }
Example #46
0
 // find an image to match
 private void showImage(Traveller.World world)
 {
     switch (world.Atmosphere)
     {
         case '0':
         case '1':
             pictureBox1.Load("space001.jpg");
             break;
         case '2':
             pictureBox1.Load("space006.jpg");
             break;
         case '3':
         case '4':
             pictureBox1.Load("space002.jpg");
             break;
         case '5':
         case '6':
         case '7':
             pictureBox1.Load("space005.jpg");
             break;
         case '8':
         case '9':
             pictureBox1.Load("space004.jpg");
             break;
         case 'A':
             pictureBox1.Load("space006.jpg");
             break;
         default:
             pictureBox1.Load("space007.jpg");
             break;
     }
 }
Example #47
0
        /// <summary>
        /// sell a cargo
        /// </summary>
        /// <param name="cargo">cargoDesc structure from Starships</param>
        /// <param name="world">traveller world - place where the cargo is getting sold</param>
        /// <returns>cargoDesc - updated cargo structure with sold details</returns>
        public Traveller.Starship.cargoDesc sell(Traveller.Starship.cargoDesc cargo, Traveller.World world, int DM)
        {
            switch (this.version)
            {
                case "T5":
                    cargo = T5Sell(cargo, world, DM);
                    break;
                case "CT":
                    cargo = CTSell(cargo, world, DM);
                    break;
                case "MT":
                    cargo = MTSell(cargo, world, DM);
                    break;
                default:
                    break;
            }

            return cargo;
        }
Example #48
0
        // find an image to match
        private void showImage(Traveller.World world)
        {
            string imageName = world.BerkaDesc + "World.jpg";

            try
            {
                pictureBox1.Load(imageName);
            }
            catch
            {
            }
        }