Exemplo n.º 1
0
        // POST: odata/IMEI
        public async Task <IHttpActionResult> Post(IMEIToCallsign imeiToCallsign)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            await _imeiService.RegisterCallsign(imeiToCallsign.IMEI, imeiToCallsign.CallSign, imeiToCallsign.Type);

            var newIMEI = await _imeiService.GetFromIMEI(imeiToCallsign.IMEI);

            await _logService.LogIMEIRegistered(User.Identity.GetUserName(), newIMEI.IMEI, newIMEI.CallSign, newIMEI.Type);

            return(Created(newIMEI));
        }
Exemplo n.º 2
0
        public async Task <ActionResult> CheckIn(string imei, decimal?lat, decimal?lon, string time, string date, int v = 1)
        {
            int            version = v;
            DateTimeOffset readingTime;

            if (lat == null || lon == null)
            {
                await locationService.RegisterBadLocation(imei, FailureReason.NoLocation, DateTimeOffset.Now);

                return(Content("No Location Given"));
            }

            if (version == 1)
            {
                if (time == null || date == null)
                {
                    await locationService.RegisterBadLocation(imei, FailureReason.NoDateOrTime, DateTimeOffset.Now);

                    return(Content("No Date or Time Given"));
                }

                var result = DateTimeOffset.TryParseExact(string.Format("{0} {1}", date, time), "ddMMyy HHmmss.fff", CultureInfo.InvariantCulture, DateTimeStyles.None, out readingTime);

                if (!result)
                {
                    await locationService.RegisterBadLocation(imei, FailureReason.BadDateOrTime, DateTimeOffset.Now);

                    return(Content("Bad Date or Time Given"));
                }
            }
            else if (version == 2)
            {
                if (time == null)
                {
                    await locationService.RegisterBadLocation(imei, FailureReason.NoDateOrTime, DateTimeOffset.Now);

                    return(Content("No Date or Time Given"));
                }

                var result = DateTimeOffset.TryParse(time.Split(' ').First(), out readingTime);

                if (!result)
                {
                    await locationService.RegisterBadLocation(imei, FailureReason.BadDateOrTime, DateTimeOffset.Now);

                    return(Content("Bad Date or Time Given"));
                }
            }
            else
            {
                await locationService.RegisterBadLocation(imei, FailureReason.BadVersion, DateTimeOffset.Now);

                return(Content("Bad Version Given"));
            }

            if (string.IsNullOrEmpty(imei))
            {
                await locationService.RegisterBadLocation(imei, FailureReason.NoIMEI, DateTimeOffset.Now);

                return(Content("No IMEI Given"));
            }

            await locationService.RegisterLocation(imei, readingTime, DateTimeOffset.Now, lat.Value, lon.Value);

            var callsign = await imeiService.GetFromIMEI(imei);

            return(Content($"Location Receieved from {callsign.CallSign}."));
        }