예제 #1
0
        public async Task <SupportAndResistanceViewModel> GetSupportAndResistance(string symbol, string timeframe = null)
        {
            SupportAndResistance supportAndResistance = await _signalsProxyService.GetSupportAndResistance(symbol, timeframe);

            SupportAndResistanceViewModel result = Mapper.Map <SupportAndResistance, SupportAndResistanceViewModel>(supportAndResistance);

            return(result);
        }
        private static void ConfigureSignalsMapping()
        {
            Mapper.CreateMap <SupportAndResistance, SupportAndResistanceViewModel>().ConvertUsing(model =>
            {
                if (model == null)
                {
                    return(null);
                }
                SupportAndResistanceViewModel viewModel = new SupportAndResistanceViewModel();

                List <SupportAndResistanceValueViewModel> support       = new List <SupportAndResistanceValueViewModel>();
                List <SupportAndResistanceValueViewModel> resistance    = new List <SupportAndResistanceValueViewModel>();
                List <SupportAndResistanceValueViewModel> gapResistance = new List <SupportAndResistanceValueViewModel>();
                List <SupportAndResistanceValueViewModel> gapSupport    = new List <SupportAndResistanceValueViewModel>();

                foreach (SupportAndResistanceValue value in model.Values)
                {
                    SupportAndResistanceValueViewModel valueViewModel = Map(value);
                    switch (value.Type)
                    {
                    case SupportAndResistanceValueType.MajorSupport:
                        support.Add(valueViewModel);
                        break;

                    case SupportAndResistanceValueType.MajorResistance:
                        resistance.Add(valueViewModel);
                        break;

                    case SupportAndResistanceValueType.GapSupport:
                        gapSupport.Add(valueViewModel);
                        break;

                    case SupportAndResistanceValueType.GapResistance:
                        gapResistance.Add(valueViewModel);
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }
                }

                support.SortDescending(vm => vm.Value);
                resistance.Sort(vm => vm.Value);
                gapSupport.SortDescending(vm => vm.Value);
                gapResistance.Sort(vm => vm.Value);

                viewModel.Support       = support;
                viewModel.Resistance    = resistance;
                viewModel.GapSupport    = gapSupport;
                viewModel.GapResistance = gapResistance;

                return(viewModel);
            });
        }