Exemplo n.º 1
0
        public void RoutesRepository_GetRoutDetailsFeedbackFor_NullLanguage()
        {
            // Arrange
            int wrongOriginCityNodeID = 11;
            int destinationCityNodeID = 5;
            var repository = new RoutesRepository(_datacontext);
            var originCityNode = _datacontext.CityNodes.SingleOrDefault(m => m.CityNodeId == wrongOriginCityNodeID);
            var destinationCityNode = _datacontext.CityNodes.SingleOrDefault(m => m.CityNodeId == destinationCityNodeID);
            var routeNode = new RouteNode { RouteNodeId = 1, OriginCityNodeId = 11, DestinationCityNodeId = 5, OriginCityNode = originCityNode, DestinationCityNode = destinationCityNode };
            string lang = null;

            //Act
            var result = repository.GetRoutDetailsFeedbackFor(routeNode, lang);
        }
Exemplo n.º 2
0
		/// <summary>
		/// Creates the route node.
		/// </summary>
		/// <param name="originCityId">The origin city identifier.</param>
		/// <param name="destinationCityId">The destination city identifier.</param>
		/// <returns>Return id of added routeNode</returns>
		public int CreateRouteNode( int originCityId, int destinationCityId ) {
			var routeNode = new RouteNode {
				OriginCityNodeId = originCityId,
				DestinationCityNodeId = destinationCityId
			};
			DataContext.AddDataObject( routeNode );
			Save();
			return routeNode.RouteNodeId;
		}
Exemplo n.º 3
0
		/// <summary>
		/// Gets the holistic feedback for.
		/// </summary>
		/// <param name="node">The node.</param>
		/// <param name="language"></param>
		/// <returns> The List of <see cref="HolisticFeedback"/>.</returns>
		public List<HolisticFeedback> GetHolisticFeedbackFor( RouteNode node, string language ) {
			var result = new List<HolisticFeedback>();

			var languageObject = DataContext.Languages.FirstOrDefault( k => k.Name.ToLower() == language.ToLower() );

			int languageId = DataContext.Languages.FirstOrDefault( k => k.IsDefault == true ).LanguageId;

			if( languageObject != null ) {
				languageId = languageObject.LanguageId;
			}

			var feedbacks = DataContext.Feedbacks.Where( e => e.RouteNodeId == node.RouteNodeId ).ToList();

			var destinationCityName = DataContext.MapObjectTranslations.SingleOrDefault(
				m => m.LanguageKey == node.DestinationCityNode.LanguageKey && m.LanguageId == languageId );

			var originCityName = DataContext.MapObjectTranslations.SingleOrDefault(
				m => m.LanguageKey == node.OriginCityNode.LanguageKey && m.LanguageId == languageId );

			foreach( var feedback in feedbacks ) {
				feedback.User = DataContext.Users.SingleOrDefault( m => m.UserId == feedback.UserId );
				var holisticFeedback = new HolisticFeedback {
					UserId = feedback.UserId,
					UserName = feedback.User.Name,
					FeedbackId = feedback.FeedbackId,
					SubmitTime = feedback.SubmitTime,
					OriginCityName = originCityName != null ? originCityName.Value : String.Empty,
					DestinationCityName = destinationCityName != null ? destinationCityName.Value : String.Empty
				};

				var feedbackValue = DataContext.FeedbackValues.FirstOrDefault( f => f.FeedbackId == feedback.FeedbackId );

				if( feedbackValue != null ) {
					holisticFeedback.Value = feedbackValue.Value;

					var feedbackItem =
						DataContext.FeedbackItems.FirstOrDefault( f => f.FeedbackItemId == feedbackValue.FeedbackItemId );
					if( feedbackItem != null ) {

						holisticFeedback.FeedbackItem = new FeedbackItemData {
							DescriptionTranslationKey = feedbackItem.DescriptionTranslationKey,
							FeedbackItemId = feedbackItem.FeedbackItemId,
							FeedbackModelId = feedbackItem.FeedbackModelId,
							IsNumeric = feedbackItem.IsNumeric,
							NameTranslationKey = feedbackItem.NameTranslationKey,
							Mandatory = feedbackItem.Mandatory,
							SortNumber = feedbackItem.SortNumber
						};
					}
				}

				result.Add( holisticFeedback );
			}

			return result;
		}
Exemplo n.º 4
0
		/// <summary>
		/// Gets the route details feedbacks.
		/// </summary>
		/// <param name="node">The node.</param>
		/// <param name="language"></param>
		/// <returns> The List of <see cref="RouteDetailsFeedback"/>.</returns>
		public List<RouteDetailsFeedback> GetRoutDetailsFeedbackFor( RouteNode node, string language ) {
			if( node == null ) {
				throw new ArgumentNullException( "node" );
			}

			if( String.IsNullOrEmpty( language ) ) {
				throw new ArgumentNullException( "language" );
			}

			var result = new List<RouteDetailsFeedback>();

			var languageObject = DataContext.Languages.FirstOrDefault( k => k.Name.ToLower() == language.ToLower() );

			int languageId = DataContext.Languages.FirstOrDefault( k => k.IsDefault == true ).LanguageId;

			if( languageObject != null ) {
				languageId = languageObject.LanguageId;
			}

			var feedbacks = DataContext.Feedbacks.Where( e => e.RouteNodeId == node.RouteNodeId ).ToList();

			var destinationCityName = DataContext.MapObjectTranslations.SingleOrDefault(
				m => m.LanguageKey == node.DestinationCityNode.LanguageKey && m.LanguageId == languageId );

			var originCityName = DataContext.MapObjectTranslations.SingleOrDefault(
				m => m.LanguageKey == node.OriginCityNode.LanguageKey && m.LanguageId == languageId );

			foreach( var feedback in feedbacks ) {
				if( feedback != null ) {
					var feedbackValues = DataContext.FeedbackValues.Where( m => m.FeedbackId == feedback.FeedbackId );
					var feedbackValuesData = ( from value in feedbackValues
											   let feedbackItem = DataContext.FeedbackItems.FirstOrDefault( f => f.FeedbackItemId == value.FeedbackItemId )
											   where feedbackItem != null
											   select new FeedbackValueData {
												   FeedbackId = value.FeedbackId,
												   FeedbackItem = new FeedbackItemData {
													   DescriptionTranslationKey = feedbackItem.DescriptionTranslationKey,
													   NameTranslationKey = feedbackItem.NameTranslationKey,
													   SortNumber = feedbackItem.SortNumber,
													   FeedbackModelId = feedbackItem.FeedbackModelId,
													   FeedbackItemId = feedbackItem.FeedbackItemId,
													   IsNumeric = feedbackItem.IsNumeric,
													   Mandatory = feedbackItem.Mandatory
												   },
												   FeedbackItemId = value.FeedbackItemId,
												   FeedbackValueId = value.FeedbackValueId,
												   Value = value.Value
											   } ).ToList();

					feedback.User = DataContext.Users.SingleOrDefault( m => m.UserId == feedback.UserId );

					if( feedback.User != null ) {
						var holisticFeedback = new RouteDetailsFeedback {
							UserName = feedback.User.Name,
							FeedbackId = feedback.FeedbackId,
							SubmitTime = feedback.SubmitTime,
							OriginCityName = originCityName != null ? originCityName.Value : String.Empty,
							DestinationCityName = destinationCityName != null ? destinationCityName.Value : String.Empty,
							DestinationCityId = feedback.RouteNode.DestinationCityNodeId,
							OriginCityId = feedback.RouteNode.OriginCityNodeId,
							FeedbackValues = feedbackValuesData
						};
						result.Add( holisticFeedback );
					}
				}
			}
			return result;
		}
Exemplo n.º 5
0
        public void RoutesRepository_GetRoutDetailsFeedbackFor_PosistiveTest(int originCityNodeID, int destinationCityNodeID, string lang, string[] expected)
        {
            // Arrange
            var repository = new RoutesRepository(_datacontext);
            var originCityNode = _datacontext.CityNodes.SingleOrDefault(m => m.CityNodeId == originCityNodeID);
            var destinationCityNode = _datacontext.CityNodes.SingleOrDefault(m => m.CityNodeId == destinationCityNodeID);
            var routeNode = new RouteNode
            {
                RouteNodeId = 1,
                OriginCityNodeId = 11,
                DestinationCityNodeId = 5,
                OriginCityNode = originCityNode,
                DestinationCityNode = destinationCityNode
            };

            //Act
            var result = repository.GetRoutDetailsFeedbackFor(routeNode, lang);

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(result.Count, expected.Length);
            Assert.AreEqual(result[0].DestinationCityName, expected[0]);
            Assert.AreEqual(result[0].OriginCityName, expected[1]);
            for (int index = 0; index < result.Count; index++)
            {
                var resultItem = result[index];
                Assert.IsNotNull(resultItem);
            }
        }
Exemplo n.º 6
0
        public void RoutesRepository_GetRoutDetailsFeedbackFor_WronrgOriginCity(int оriginCityNodeID, int destinationCityNodeID, string lang)
        {
            // Arrange
            var repository = new RoutesRepository(_datacontext);
            var originCityNode = _datacontext.CityNodes.SingleOrDefault(m => m.CityNodeId == оriginCityNodeID);
            var destinationCityNode = _datacontext.CityNodes.SingleOrDefault(m => m.CityNodeId == destinationCityNodeID);
            var routeNode = new RouteNode { RouteNodeId = 1, OriginCityNodeId = 11, DestinationCityNodeId = 5, OriginCityNode = originCityNode, DestinationCityNode = destinationCityNode };
            //string lang = "en";

            //Act
            var result = repository.GetRoutDetailsFeedbackFor(routeNode, lang);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Gets the estimation for route node.
        /// </summary>
        /// <param name="node">The node.</param>
        /// <returns>The <see cref="RouteNodeEstimation"/> estimation.</returns>
        private RouteNodeEstimation GetEstimationForRouteNode(RouteNode node)
        {
            return new RouteNodeEstimation
            {
                RouteNode = new RouteNodeData
                {
                    DestinationCityNodeId = node.DestinationCityNodeId,
                    OriginCityNodeId = node.OriginCityNodeId,
                    RouteNodeId = node.RouteNodeId
                },

                HolisticFeedbacks = _routeRepository.GetHolisticFeedbackFor(node, null)
            };
        }