Exemplo n.º 1
0
        public IActionResult CreateNewGuest(CreateGuestForRemap createGuest)
        {
            if (_user == null && _options != null)
            {
                if (_options.EnableGuest)
                {
                    if (!ModelState.IsValid)
                    {
                        return(BadRequest("Invalid Entry"));
                    }
                    if (_ctx.Exist(createGuest.IPAddress))
                    {
                        var result = _ctx.GetGuestByIpOrId(createGuest.IPAddress);
                        _logger.LogInformation("ReAdding GUEST");
                        return(Ok(result));
                    }
                    createGuest.FirstVisit = DateTime.Now;
                    createGuest.LastVisit  = DateTime.Now;
                    if (_ctx.AddNewGuest(_mapper.Map <GuestEntity>(createGuest)))
                    {
                        var guest = new GuestBasic()
                        {
                            IPAddress = createGuest.IPAddress
                        };

                        SetGuestSession(data: guest);
                        var final = _ctx.GetGuestByIpOrId(guest.IPAddress);

                        _logger.LogInformation("ADDING GUEST");
                        return(Ok(final));
                    }
                }
                _logger.LogInformation("Not set as a MEMBER is OPTIONS");
                return(BadRequest("Not set as a MEMBER is OPTIONS"));
            }
            return(BadRequest($" is currently logged in."));
        }
Exemplo n.º 2
0
        public IActionResult CreateNewAvatar([FromBody] CreateAvatarForRemap createAvatar)
        {
            try
            {
                _logger.LogInformation("IN CREATE AVATAR.");
                if (!ModelState.IsValid)
                {
                    // Checks if required properties are valid
                    return(BadRequest("Invalid Entry"));
                }
                if (!_ctx.Exist(createAvatar.CurrentIP))
                {
                    _logger.LogInformation("IN CREATE AVATAR - creating.");

                    createAvatar.JoinedOn      = DateTime.Now;
                    createAvatar.IsCheckedIn   = true;
                    createAvatar.LastCheckedIn = DateTime.Now;
                    var newGuest = new GuestEntity();
                    if (_unregisteredGuest != null && _options.IsUnregistered)
                    {
                        _logger.LogInformation("IN CREATE AVATAR - _unregisteredGuest.");
                        newGuest.IPAddress  = _unregisteredGuest.IPAddress;
                        newGuest.Region     = _unregisteredGuest.Region;
                        newGuest.Country    = _unregisteredGuest.Country;
                        newGuest.FirstVisit = _unregisteredGuest.FirstVisit;
                        newGuest.LastVisit  = _unregisteredGuest.LastVisit;
                        if (!_guestContext.AddNewGuest(newGuest))
                        {
                            return(BadRequest("There was a error found while adding new guest at create new avatar."));
                        }
                    }
                    if (_guest != null && _options.IsMember)
                    {
                        _logger.LogInformation("IN CREATE AVATAR - _guest.");
                        newGuest.IPAddress  = _guest.IPAddress;
                        newGuest.Region     = _guest.Region;
                        newGuest.Country    = _guest.Country;
                        newGuest.FirstVisit = _guest.FirstVisit;
                        newGuest.LastVisit  = _guest.LastVisit;
                        if (!_guestContext.AddNewGuest(newGuest))
                        {
                            return(BadRequest("There was a error found while adding new guest at create new avatar."));
                        }
                    }
                    var createdGuest = _guestContext.GetAllGuest().FirstOrDefault(g => g.IPAddress == (createAvatar.CurrentIP));
                    if (createdGuest != null)
                    {
                        createAvatar.GuestId = createdGuest.Id;
                        createAvatar.Votes   = createdGuest.Votes;
                    }

                    var avatar = _mapper.Map <AvatarEntity>(createAvatar);
                    var json   = string.Empty;
                    if (_ctx.AddNewAvatar(avatar))
                    {
                        json = @"{'user':{'currentIP':" + $"'{avatar.CurrentIP}'" + "}}";
                        var obj = new JObject();
                        obj = JObject.Parse(json);

                        var result      = SetSession(data: obj);
                        var finalAvatar = _ctx.GetAvatarById(ip: createAvatar.CurrentIP);
                        _logger.LogInformation($"New User {avatar.Name} has been created and signed in on {DateTime.Now}");
                        return(Ok(finalAvatar));
                    }
                    return(BadRequest("The user already exists"));
                }
                // Add redirect to route
                return(BadRequest("Nothing was created."));
            }
            catch (Exception ex)
            {
                _logger.LogError(Messages(WarningType.LogMessage, reference: "CREATE"), ex);
                return(StatusCode(500, Messages(WarningType.ExceptionError, nameof(CreateNewAvatar))));
            }
        }