Beispiel #1
0
        public async Task <IActionResult> SignalArrived(SignalInputModel inputModel)
        {
            //you can validate input here
            //then if the inputmodel is valid then you can save the signal
            var saveResult = await _signalService.SaveSignalAsync(inputModel);

            //if you can save the signal you can notify all clients by using SignalHub
            if (saveResult)
            {
                //you might think use a mapping tool?
                SignalViewModel signalViewModel = new SignalViewModel
                {
                    Description  = inputModel.Description,
                    CustomerName = inputModel.CustomerName,
                    Area         = inputModel.Area,
                    Zone         = inputModel.Zone,
                    SignalStamp  = Guid.NewGuid().ToString()
                };

                var user    = signalViewModel.CustomerName;
                var message = signalViewModel.Description;
                var date    = signalViewModel.SignalStamp;
                var zone    = signalViewModel.Zone;

                await _hubContext.Clients.All.SendAsync("SignalMessageReceived", user, message, date, zone);

                // await _hubContext.Clients.All.SendAsync("SignalMessageReceived", signalViewModel);
            }

            return(StatusCode(200, saveResult));
        }
Beispiel #2
0
        public async Task <bool> SaveSignalAsync(SignalInputModel inputModel)
        {
            try
            {
                //map input model to data model
                //at this point we assume a signal arrives only one time and it's unique
                SignalDataModel signalModel = new SignalDataModel();
                signalModel.CustomerName = inputModel.CustomerName;
                signalModel.Description  = inputModel.Description;
                signalModel.AccessCode   = inputModel.AccessCode;
                signalModel.Area         = inputModel.Area;
                signalModel.Zone         = inputModel.Zone;
                signalModel.SignalDate   = DateTime.Now;

                //execute some business rules according to your cases.

                //if you decide to save signal add it to the db context
                _mainDbContext.Signals.Add(signalModel);

                //save changes and if the signal has stored in db return true.
                return(await _mainDbContext.SaveChangesAsync() > 0);
            }
            catch (Exception exception)
            {
                //log the exception or take some actions

                return(false);
            }
        }
        public async Task <IActionResult> SignalArrived(SignalInputModel signalInputModel)
        {
            var saveResult = await this._signalService.SavesSignalAsync(signalInputModel);

            if (saveResult)
            {
                var signalViewModel = new SignalViewModel
                {
                    Description  = signalInputModel.Description,
                    CustomerName = signalInputModel.CustomerName,
                    Area         = signalInputModel.Area,
                    Zone         = signalInputModel.Zone,
                    SignalStamp  = Guid.NewGuid().ToString(),
                };

                await this._hubContext.Clients.All.SendAsync("SignalMessageReceived", signalViewModel);
            }

            return(StatusCode(200, saveResult));
        }
Beispiel #4
0
        public async Task <bool> SavesSignalAsync(SignalInputModel signalInputModel)
        {
            try
            {
                var signalDataModel = new SignalDataModel
                {
                    CustomerName = signalInputModel.CustomerName,
                    Description  = signalInputModel.Description,
                    AccessCode   = signalInputModel.AccessCode,
                    Area         = signalInputModel.Area,
                    Zone         = signalInputModel.Zone,
                    SignalDate   = DateTime.Now
                };

                this._mainDbContext.Signals.Add(signalDataModel);
                return(await this._mainDbContext.SaveChangesAsync() > 0);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
Beispiel #5
0
        public async Task <IActionResult> SignalArrived(SignalInputModel inputModel)
        {
            //you can validate input here
            //then if the inputModel is valid then you can save the signal
            var saveResult = await _signalService.SaveSignalAsync(inputModel);

            if (saveResult)
            {
                SignalViewModel signalViewModel = new SignalViewModel {
                    Description  = inputModel.Description,
                    CustomerName = inputModel.CustomerName,
                    Area         = inputModel.Area,
                    Zone         = inputModel.Zone,
                    SignalStamp  = Guid.NewGuid().ToString(),
                };

                //notify all clients by using SignalHub
                await _hubContext.Clients.All.SendAsync("SignalMessageReceived", signalViewModel);
            }

            return(StatusCode(200, saveResult));
        }
        public async Task <IActionResult> SaveSignalAsync(SignalInputModel signal)
        {
            try
            {
                SignalDataModel data = new SignalDataModel()
                {
                    AccessCode   = signal.AccessCode,
                    Area         = signal.Area,
                    CustomerName = signal.CustomerName,
                    Description  = signal.Description,
                    SignalDate   = DateTime.Now,
                    Zone         = signal.Zone
                };
                await uow.SignalRepository.AddAsync(data);

                if (await uow.SaveChangesAsync() > 0)
                {
                    SignalVM signalVM = new SignalVM()
                    {
                        AccessCode   = signal.AccessCode,
                        Area         = signal.Area,
                        CustomerName = signal.CustomerName,
                        Description  = signal.Description,
                        SignalDate   = data.SignalDate,
                        Zone         = signal.Zone
                    };
                    await this.hubContext.Clients.All.SendAsync("SignalMessageReceived", signalVM);

                    return(Ok());
                }
                return(BadRequest(new { message = "Some error occured." }));
            }
            catch (Exception ex)
            {
                return(BadRequest(new { message = ex.Message }));
            }
        }
        public async Task <bool> SaveSignalAsync(SignalInputModel inputModel)
        {
            try
            {
                SignalDataModel signalModel = new SignalDataModel {
                    CustomerName = inputModel.CustomerName,
                    Description  = inputModel.Description,
                    AccessCode   = inputModel.AccessCode,
                    Area         = inputModel.Area,
                    Zone         = inputModel.Zone,
                    SingalDate   = DateTime.Now
                };

                // execute some business rules according to your cases

                _mainDbContext.Signals.Add(signalModel);

                return(await _mainDbContext.SaveChangesAsync() > 0);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }