public IActionResult NewVisit(
            [FromBody] VisitDto newVisit)
        {
            if (newVisit == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var visitToSave = AutoMapper.Mapper.Map <Entities.Visit>(newVisit);

            _buyingAgentSave.SaveNewEntity(visitToSave);

            if (!_buyingAgentCheckIfSaved.Save())
            {
                return(StatusCode(500, "A problem happened while handling your request."));
            }

            var visitToReturn = AutoMapper.Mapper.Map <Models.VisitDto>(visitToSave);

            return(Ok(new { id = visitToSave.Id, visitToReturn }));
        }
Esempio n. 2
0
        public string describe(VisitDto visit, ProfilePictureDto picture)
        {
            string response = "Il semblerait que tu sois ";
            int    age      = DateTime.Now.Year - visit.PersonVisit.Age;

            if (visit.PersonVisit.Gender == GenderValues.Male)
            {
                response += "un homme de " + age + " ans ";
                if (Convert.ToDouble(picture.Glasses) >= 0.50)
                {
                    response += "portant des lunettes ";
                }
                if (Convert.ToDouble(picture.Mustache) >= 0.60 && Convert.ToDouble(picture.Beard) >= 0.60)
                {
                    response += "avec une barbe et une superbe moustache! ;)";
                }
                else if (Convert.ToDouble(picture.Beard) >= 0.60)
                {
                    response += "avec une barbe";
                }
                else if (Convert.ToDouble(picture.Mustache) >= 0.60)
                {
                    response += "avec une moustache";
                }
            }
            else
            {
                response += "un femme de " + age + " ";
            }
            return(response);
        }
Esempio n. 3
0
        public IActionResult CreateVisit([FromBody] VisitForCreationDto visit, int id)
        {
            if (ModelState.IsValid && id >= 0)
            {
                visit.CourseId = id;

                var newId = _unitOfWork.VisitRepository.Add(visit);

                if (newId < 0)
                {
                    throw new Exception("Creating a visit failed on save.");
                }

                var visitToReturn = new VisitDto
                {
                    Id          = newId,
                    StationId   = visit.StationId,
                    CourseId    = visit.CourseId,
                    StationName = "maybeToDo",
                    VisitOrder  = visit.VisitOrder,
                    Date        = visit.Date
                };

                return(CreatedAtRoute("GetVisitsForCourse", new { id = visitToReturn.Id }, visitToReturn));
            }
            else
            {
                return(BadRequest());
            }
        }
Esempio n. 4
0
        public void OnActionExecuting(ActionExecutingContext filterContext)
        {
            #region 记录访问记录

            try
            {
                var userService = DependencyResolver.Current.GetService <IUserService>();
                var context     = filterContext.HttpContext;
                var user        = context.User;
                var isLogined   = user != null && user.Identity != null && user.Identity.IsAuthenticated;
                var visit       = new VisitDto
                {
                    IP        = filterContext.HttpContext.Request.UserHostAddress,
                    LoginName = isLogined ? user.Identity.Name : string.Empty,
                    Url       = context.Request.Url.PathAndQuery,
                    UserId    = isLogined ? user.Identity.GetLoginUserId().ToString() : "0"
                };
                userService.Visit(visit);
            }
            catch
            {
                //eat exception
            }

            #endregion
        }
Esempio n. 5
0
        private void ClearVisitInfo()
        {
            if (RegionManager.Regions.ContainsRegionWithName("VisitRegion"))
            {
                var activitiesRegion = RegionManager.Regions["VisitRegion"];

                // Retain a reference to the Context before removing the View from the Region.
                // This is necessary because Prism sets the Region Context to null when a view is removed from it.
                var regionContext = activitiesRegion.Context;

                foreach (var view in activitiesRegion.Views)
                {
                    if (view is FrameworkElement && (view as FrameworkElement).DataContext is IActivityViewModel)
                    {
                        activitiesRegion.Remove(view);
                    }
                }

                activitiesRegion.Context = regionContext;
            }

            Visit                = null;
            ProblemList          = null;
            _statusQuestionAsked = false;
        }
Esempio n. 6
0
        public async Task Invoke(HttpContext context)
        {
            await _next(context);

            #region 记录访问记录

            try
            {
                var userService = context.RequestServices.GetService <IUserService>();

                var connection = context.Features.Get <IHttpConnectionFeature>();
                var user       = context.User;
                var isLogined  = user?.Identity != null && user.Identity.IsAuthenticated;
                var visit      = new VisitDto
                {
                    Ip        = connection.RemoteIpAddress.ToString(),
                    LoginName = isLogined ? user.Identity.Name : string.Empty,
                    Url       = context.Request.Path,
                    UserId    = user.Identity.GetLoginUserId()
                };
                await userService.VisitAsync(visit);
            }
            catch
            {
                //eat exception
            }

            #endregion
        }
Esempio n. 7
0
        public void OnActionExecuting(ActionExecutingContext filterContext)
        {
            #region 记录访问记录

            try
            {
                var userService = DependencyResolver.Current.GetService <IUserService>();
                var context     = filterContext.HttpContext;
                var user        = context.User;
                var isLogined   = user != null && user.Identity != null && user.Identity.IsAuthenticated;
                var visit       = new VisitDto
                {
                    IP        = filterContext.HttpContext.Request.UserHostAddress,
                    LoginName = isLogined ? user.Identity.Name : string.Empty,
                    Url       = context.Request.Url.PathAndQuery,
                    UserId    = isLogined ? user.Identity.GetLoginUserId() : "0"
                };
                Task.Run(async() => await userService.Visit(visit));
            }
            catch (Exception ex)
            {
                Log.Error("SiteVisitFilterError", ex);
            }

            #endregion
        }
Esempio n. 8
0
        /// <summary>
        /// 记录访问记录
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public async Task <bool> VisitAsync(VisitDto dto)
        {
            var entity = _mapper.Map <VisitDto, PageViewEntity>(dto);

            entity.Init();
            _context.PageViews.Add(entity);
            return(await _context.SaveChangesAsync() > 0);
        }
Esempio n. 9
0
        public async Task <ServiceResponse <VisitDto> > UpdateAsync(VisitDto model, int userId)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            var visit = UnitOfWork.Get <Visit>().Get(model.ID, v => v.Visitors);

            visit.LocationID = model.LocationID;
            visit.Code       = model.Code;
            visit.Date       = model.Date;
            visit.UpdateModifiedFields(userId);
            visit.Visitors.ToList().ForEach(v => UnitOfWork.Get <Visitor>().Delete(v));
            visit.Visitors.Clear();

            Regex.Matches(model.Code, @"^(([мМжЖ]+[1234]{1})+)$")
            .OfType <Match>()
            .ToList()
            .ForEach(visitorCode =>
            {
                var code     = visitorCode.Value;
                var ageGroup = (VisitorAgeGroups)Enum.Parse(typeof(VisitorAgeGroups), code.Last().ToString());
                code.Substring(0, code.Length - 1)
                .ToLower()
                .Select(c => c)
                .ToList()
                .ForEach(genderCode =>
                {
                    var visitor = new Visitor
                    {
                        AgeGroup = ageGroup,
                        Gender   = genderCode.Equals('м')
                                    ? VisitorGenders.Male
                                    : VisitorGenders.Female
                    };

                    visitor
                    .UpdateCreatedFields(userId)
                    .UpdateModifiedFields(userId);

                    visit.Visitors.Add(visitor);
                });
            });

            var updated = UnitOfWork.Get <Visit>().Update(visit);

            await UnitOfWork.SaveAsync();

            return(new SuccessResponse <VisitDto>(new VisitDto
            {
                ID = updated.ID,
                Code = updated.Code.ToUpper(),
                Date = updated.Date,
                LocationID = updated.LocationID,
                LocationName = updated.Location?.Name
            }));
        }
Esempio n. 10
0
 public static Visit ToEntity(this VisitDto dto)
 {
     return(new Visit
     {
         ID = dto.ID,
         Code = dto.Code,
         Date = dto.Date,
         LocationID = dto.LocationID
     });
 }
Esempio n. 11
0
        private void HandleSaveVisitDtoCompleted(ReceivedResponses receivedResponses)
        {
            IsLoading = false;

            var response     = receivedResponses.Get <DtoResponse <VisitDto> > ();
            var currentVisit = response.DataTransferObject;

            Visit = currentVisit;
            RaiseVisitChanged();
        }
Esempio n. 12
0
 /// <summary>
 /// 记录访问记录
 /// </summary>
 /// <param name="dto"></param>
 /// <returns></returns>
 public async Task <bool> VisitAsync(VisitDto dto)
 {
     using (var scope = _dbContextScopeFactory.Create())
     {
         var db     = scope.DbContexts.Get <JuCheapContext>();
         var dbSet  = db.Set <PageViewEntity>();
         var entity = _mapper.Map <VisitDto, PageViewEntity>(dto);
         entity.Id = BaseIdGenerator.Instance.GetId();
         dbSet.Add(entity);
         return(await scope.SaveChangesAsync() > 0);
     }
 }
Esempio n. 13
0
 private static void PrintVisit(VisitDto v)
 {
     Console.WriteLine("[{0}] [{1}||{2}] {3} {4}", v.ID, v.Utc, v.UtcOut, v.LocName, v.By);
     foreach (var c in v.Climbs)
     {
         Console.WriteLine("[{0}] {1} {2}", c.Name, c.Outcome, c.Experience);
     }
     foreach (var c in v.Media)
     {
         Console.WriteLine("[{0}] {1}", c.ID, c.ThumbUrl);
     }
 }
Esempio n. 14
0
        public void ThrowArgumentNullException_WhenInvokedWithInvalidParameter()
        {
            //Arrange
            var dbContextMock = new Mock <ISportscardSystemDbContext>();
            var mapperMock    = new Mock <IMapper>();

            VisitDto visitDto     = null;
            var      visitService = new VisitService(dbContextMock.Object, mapperMock.Object);

            //Act && Assert
            Assert.ThrowsException <ArgumentNullException>(() => visitService.AddVisit(visitDto));
        }
Esempio n. 15
0
        /// <summary>
        /// 记录访问记录
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public async Task <bool> Visit(VisitDto dto)
        {
            using (var scope = _dbContextScopeFactory.Create())
            {
                var db     = scope.DbContexts.Get <JuCheapContext>();
                var entity = _mapper.Map <VisitDto, PageViewEntity>(dto);
                entity.Create();
                db.PageViews.Add(entity);
                await scope.SaveChangesAsync();

                return(true);
            }
        }
Esempio n. 16
0
        public IActionResult AddVisit([FromBody] VisitDto visitDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var visitToAdd = _mapper.Map <Visit>(visitDto);

            _visitService.Add(visitToAdd);

            return(Ok(visitToAdd));
        }
        public async Task <ActionResult> AddVisit(VisitDto visit)
        {
            if (visit.ApiKey != _apiKey || string.IsNullOrEmpty(visit.PhoneNumber))
            {
                return(StatusCode(500));
            }

            _context.Visits.Add(new Visit {
                Name = visit.Name, Email = visit.Email, PhoneNumber = visit.PhoneNumber, VenueId = visit.VenueId, VisitTime = DateTime.UtcNow
            });
            await _context.SaveChangesAsync();

            return(StatusCode((int)HttpStatusCode.OK));
        }
Esempio n. 18
0
 public async Task DeleteVisit(VisitDto visit)
 {
     using (var httpClient = new HttpClient())
     {
         using (var response = await httpClient.DeleteAsync(uri.AbsoluteUri + visit.Id))
         {
             if (!response.IsSuccessStatusCode)
             {
                 //string apiResponse = await response.Content.ReadAsStringAsync();
                 throw new Exception();
             }
         }
     }
 }
Esempio n. 19
0
        public async Task UpdateVisit(VisitDto visit)
        {
            using (var httpClient = new HttpClient())
            {
                StringContent content = new StringContent(JsonConvert.SerializeObject(visit), Encoding.UTF8, "application/json");

                using (var response = await httpClient.PutAsync(uri.AbsoluteUri + visit.Id, content))
                {
                    if (!response.IsSuccessStatusCode)
                    {
                        throw new Exception();
                    }
                }
            }
        }
Esempio n. 20
0
        public async Task <ServiceResponse <int> > CreateAsync(VisitDto model, int userId)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            var visit = model.ToEntity();

            visit
            .UpdateCreatedFields(userId)
            .UpdateModifiedFields(userId);

            Regex.Matches(model.Code, @"^(([мМжЖ]+[1234]{1})+)$")
            .OfType <Match>()
            .ToList()
            .ForEach(visitorCode =>
            {
                var code     = visitorCode.Value;
                var ageGroup = (VisitorAgeGroups)Enum.Parse(typeof(VisitorAgeGroups), code.Last().ToString());
                code.Substring(0, code.Length - 1)
                .ToLower()
                .Select(c => c)
                .ToList()
                .ForEach(genderCode =>
                {
                    var visitor = new Visitor
                    {
                        AgeGroup = ageGroup,
                        Gender   = genderCode.Equals('м')
                                    ? VisitorGenders.Male
                                    : VisitorGenders.Female
                    };

                    visitor
                    .UpdateCreatedFields(userId)
                    .UpdateModifiedFields(userId);

                    visit.Visitors.Add(visitor);
                });
            });

            var added = UnitOfWork.Get <Visit>().Add(visit);

            await UnitOfWork.SaveAsync();

            return(new SuccessResponse <int>(added.ID));
        }
Esempio n. 21
0
        public async Task <IActionResult> AddVisit(VisitDto visitDto)
        {
            Visit visit = _mapper.Map <Visit>(visitDto);

            visit.Arrival   = DateTime.Now;
            visit.Departure = DateTime.Today.AddDays(1).AddSeconds(-1);
            visit           = await _unitOfWork.RegisterRepository.LogIn(visit);

            if (await _unitOfWork.Complete())
            {
                return(Ok());
            }


            return(BadRequest("something went wrong"));
        }
Esempio n. 22
0
 public static VisitViewModel Create(VisitDto visit, string returnUrl,
                                     IEnumerable <VisitTypeDto> visitTypes,
                                     IEnumerable <EmployeeDto> employees,
                                     IEnumerable <OfficeDto> offices,
                                     IEnumerable <RegisterControlDto> registerControls,
                                     IEnumerable <VisitStateDto> visitStates)
 {
     return(new VisitViewModel
     {
         Visit = visit,
         ReturnUrl = returnUrl,
         VisitTypes = visitTypes,
         Employees = employees,
         Offices = offices,
         RegisterControls = registerControls,
         VisitStates = visitStates
     });
 }
Esempio n. 23
0
        public static VisitViewModel Create(VisitDto visitDto)
        {
            var newVisitView = new VisitViewModel
            {
                Id            = visitDto.Visit.Id,
                TaskName      = visitDto.Visit.TaskName,
                Description   = visitDto.Visit.Description,
                ClientAddress = visitDto.Visit.ClientAddress,
                StartTime     = visitDto.Visit.StartTime.ToShortTimeString(),
                EndTime       = visitDto.Visit.EndTime.ToShortTimeString(),

                ClientId        = visitDto.Client.Id,
                ClientFirstName = visitDto.Client.FirstName,
                ClientLastName  = visitDto.Client.LastName,
            };

            return(newVisitView);
        }
Esempio n. 24
0
        public void AddVisitToDabatase_WhenInvokedWithValidParameters()
        {
            //Arrange
            var dbContextMock = new Mock <ISportscardSystemDbContext>();
            var mapperMock    = new Mock <IMapper>();
            var expectedVisit = new Visit()
            {
                ClientId = Guid.NewGuid()
            };

            var data = new List <Visit>
            {
                new Visit {
                    CreatedOn = DateTime.Today.AddDays(-1)
                }
            };

            var mockSet = new Mock <DbSet <Visit> >();

            mockSet.SetupData(data);
            mockSet.Setup(m => m.Add(It.IsAny <Visit>()));

            dbContextMock
            .Setup(x => x.Visits)
            .Returns(mockSet.Object);

            var visitDto = new VisitDto()
            {
                ClientId = Guid.NewGuid()
            };

            mapperMock
            .Setup(x => x.Map <Visit>(visitDto))
            .Returns(expectedVisit);

            var visitService = new VisitService(dbContextMock.Object, mapperMock.Object);

            //Act
            visitService.AddVisit(visitDto);

            //Assert
            mockSet.Verify(x => x.Add(expectedVisit), Times.Once);
        }
Esempio n. 25
0
        public Message GetVisit(string id)
        {
            SvcContext ctx = InflateContext(); if (ctx.Invalid)

            {
                return(ctx.ContextMessage);
            }

            try
            {
                Guid ciID  = Guid.ParseExact(id, "N");
                var  ci    = visitsSvc.GetCheckInById(ciID);
                var  loc   = CfPerfCache.GetLocation(ci.LocationID);
                var  ciDto = new VisitDto(ci, loc, CfIdentity.DisplayName, "");

                return(ReturnAsJson(ciDto));
            }
            catch { return(Failed("Query failed")); }
        }
Esempio n. 26
0
        public async Task <VisitDto> GetVisit(int id)
        {
            VisitDto visit = new VisitDto();

            using (var httpClient = new HttpClient())
            {
                using (var response = await httpClient.GetAsync(uri.AbsoluteUri + id))
                {
                    if (response.IsSuccessStatusCode)
                    {
                        string apiResponse = await response.Content.ReadAsStringAsync();

                        visit = JsonConvert.DeserializeObject <VisitResponseDto>(apiResponse).Visit;
                    }
                }
            }

            return(visit);
        }
Esempio n. 27
0
        public IActionResult Create(VisitDto visitDto)
        {
            var customer = customerData.GetCustomerById(visitDto.CustomerId.GetValueOrDefault());

            if (customer == null)
            {
                return(BadRequest());
            }

            var visit = new Visit();

            visit.CustomerId = visitDto.CustomerId;

            var shopItemsValues = (IEnumerable <int>)Enum.GetValues(typeof(ShopItemType));

            foreach (var shopItem in visitDto.ShopItems)
            {
                if (!shopItemsValues.Any(x => x == shopItem.ShopItemType))
                {
                    ModelState.AddModelError("ShopItemType", $"ShopItemType[{visitDto.ShopItems.IndexOf(shopItem)}] {shopItem.ShopItemType} does not exists.");
                }

                if (ModelState.IsValid)
                {
                    visit.ShopItems.Add(new ShopItem
                    {
                        Price        = Math.Abs(shopItem.Price.GetValueOrDefault()),
                        ShopItemType = (ShopItemType)shopItem.ShopItemType
                    });
                }
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ValidationProblemDetails(ModelState)));
                //return BadRequest(ModelState);
            }


            visitData.Create(visit);
            visitData.Commit();
            return(CreatedAtRoute("FetchVisit", new { id = visit.Id }, visit));
        }
Esempio n. 28
0
        public async Task <VisitDto> AddVisit(VisitDto visit)
        {
            VisitDto receivedVisit = new VisitDto();

            using (var httpClient = new HttpClient())
            {
                StringContent content = new StringContent(JsonConvert.SerializeObject(visit), Encoding.UTF8, "application/json");

                using (var response = await httpClient.PostAsync(uri.AbsoluteUri, content))
                {
                    if (!response.IsSuccessStatusCode)
                    {
                        throw new Exception();
                    }
                    string apiResponse = await response.Content.ReadAsStringAsync();

                    receivedVisit = JsonConvert.DeserializeObject <VisitResponseDto>(apiResponse).Visit;
                }
            }
            return(receivedVisit);
        }
Esempio n. 29
0
        public Message History(string id)
        {
            try
            {
                SvcContext ctx = InflateContext(); if (ctx.Invalid)
                {
                    return(ctx.ContextMessage);
                }

                Guid uID;
                if (id == "me")
                {
                    uID = CfIdentity.UserID;
                }
                else
                {
                    uID = Guid.ParseExact(id, "N");
                }

                //-- TODO: rewrite to use $expand and do single database call
                var usersCheckIns = visitsSvc.GetUsersHistory(uID).OrderByDescending(c => c.Utc).Take(15);
                var dto           = new List <VisitDto>();

                foreach (var ci in usersCheckIns)
                {
                    //-- Here we use perf cache instead of Include()/join because it's likely the user will
                    //-- have revisited the same place
                    var loc   = CfPerfCache.GetLocation(ci.LocationID);
                    var ciDto = new VisitDto(ci, loc, "", "");
                    dto.Add(ciDto);
                }

                return(ReturnAsJson(dto));
            }
            catch (Exception ex)
            {
                CfTrace.Error(ex);
                return(Failed("History query failed : " + ex.Message));
            }
        }
Esempio n. 30
0
        public Message CheckIn(string loc, string isPrivate, string getAlerts, string comment)
        {
            SvcContext ctx = InflateContext(); if (ctx.Invalid)

            {
                return(ctx.ContextMessage);
            }

            try
            {
                Guid locID      = Guid.ParseExact(loc, "N");
                bool bIsPrivate = false; if (isPrivate == "y")
                {
                    bIsPrivate = true;
                }
                bool bGetAlerts = true; if (isPrivate == "n")
                {
                    bGetAlerts = false;
                }
                var location = CfPerfCache.GetLocation(locID);
                //-- TODO: Add GET ALERTS TO DB AND PASS IN HERE

                //var decodedComment = comment.ODataDecode();
                var ci = visitsSvc.CreateCurrentCheckIn(
                    new CheckIn()
                {
                    LocationID = location.ID, Latitude = ctx.Lat, Longitude = ctx.Lon, Comment = comment, IsPrivate = bIsPrivate
                });

                var dto = new VisitDto(ci, location, CfIdentity.DisplayName, "");

                return(ReturnAsJson(dto));
            }
            catch (Exception ex)
            {
                return(Failed("Check in failed : " + ex.Message));
            }
        }