Пример #1
0
        private void OnUpdated(IAfterEntry <EventEntity, BiContext> evt)
        {
            var _notification   = new NotificationsIOSRepository(evt.Context);
            var _dbNotification = evt.Context.Set <NotificationEntity>();
            var _dbReport       = evt.Context.Set <ReportEntity>();
            var reportEvt       = evt.Entity.Body as ReportUpdatedEvt;
            var report          = _dbReport.Include(r => r.Company).Include(r => r.Week).Include(r => r.User).First(r => r.Id == reportEvt.Id);
            var users           = this.UserFromReport(evt.Context, report);

            _dbNotification.Add(new NotificationEntity()
            {
                Body = new ReportUpdated()
                {
                    Id        = report.Id,
                    CompanyId = report.CompanyId,
                    UserId    = report.UserId,
                    WeekId    = report.WeekId
                },
                SenderId  = evt.Entity.UserId,
                Receivers = users.Select(u => new ReceiverEntity()
                {
                    UserId = u
                }).ToList()
            });
            var message = "Se actualizó reporte de la empresa: " + report.Company.Name + " por el usuario: " +
                          report.User.Name + " " + report.User.Lastname + " en la semana: " +
                          report.Week.StartTime.ToString("dd MMM").ToUpper() + " al " +
                          report.Week.EndTime.ToString("dd MMM yyyy").ToUpper();

            _notification.SendNotification(users, message, report);
            evt.Context.SaveChanges();
        }
Пример #2
0
        public async Task <IActionResult> CreateReply([FromRoute] long idCompany, [FromRoute] int type, [FromRoute] long idUser, [FromBody] MessageRequest message)
        {
            try
            {
                var creator = HttpContext.UserId().Value;
                if (creator != idUser)
                {
                    var values =
                        await _replyRepository.SearchOrCreateGroup(idCompany, idUser, creator, type,
                                                                   new MessageEntity()
                    {
                        Message = message.Message,
                        Tags    = message.Tags,
                        UserId  = creator,
                        WeekId  = message.WeekId
                    });

                    if (values == null)
                    {
                        return(BadRequest(new { message = "Imposible crear con datos especificados." }));
                    }
                    var    response      = new MessageResponse(values);
                    string messageString = values.User.Name + " " + values.User.Lastname + ": " + response.Message;
                    var    userNotify    = new List <long>()
                    {
                        idUser
                    };
                    try
                    {
                        _notifications.SendNotification(userNotify, messageString, response);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                    }
                    return(new ObjectResult(response)
                    {
                        StatusCode = 201
                    });
                }
                return(new ObjectResult(
                           new { message = "Los usuarios no deben ser iguales." })
                {
                    StatusCode = 404
                });
            }
            catch (Exception e)
            {
                return(new ObjectResult(new { messsage = e.Message })
                {
                    StatusCode = 500
                });
            }
        }