예제 #1
0
        public async Task <ValueResponse <Rescuer> > JoinAsync(Guid id, Rescuer rescuer)
        {
            var opResult = await FindByIdAsync(id);

            if (!opResult.Success)
            {
                return(new ValueResponse <Rescuer>(opResult.Message));
            }

            try
            {
                rescuer.Operation = opResult.Value;

                var result = await _rescuerService.CreateAsync(rescuer);

                await _messageService.SendMessage(
                    rescuer.PhoneNumber,
                    "Kogunemine toimub kell 17:30 aadressil Telliskivi 60a, 10412 Tallinn. https://goo.gl/maps/rS1Pm5yPvG6z9NYa7"
                    );

                return(!result.Success
                    ? new ValueResponse <Rescuer>($"Error joining operation {id}: {result.Message}")
                    : new ValueResponse <Rescuer>(result.Value));
            }
            catch (Exception e)
            {
                return(new ValueResponse <Rescuer>(e.Message));
            }
        }
예제 #2
0
        public async Task <ValueResponse <Rescuer> > CreateAsync(Rescuer rescuer)
        {
            try
            {
                await _rescuerRepository.AddAsync(rescuer);

                await _work.CompleteTask();

                return(new ValueResponse <Rescuer>(rescuer));
            }
            catch (Exception e)
            {
                return(new ValueResponse <Rescuer>(e.Message));
            }
        }
예제 #3
0
        // GET: PetRescued
        public ActionResult Random()
        {
            var rescuer = new Rescuer()
            {
                Name = "Ali"
            };

            var petrescued = new List <PetRescued>
            {
                new PetRescued {
                    PetName = "Rekt"
                }
            };

            var viewModel = new RandomPetRescuedViewModel
            {
                Rescuer    = rescuer,
                PetRescued = petrescued
            };

            return(View(viewModel));
        }
예제 #4
0
 public async Task LoadOperation(Rescuer rescuer)
 {
     await _context.Entry(rescuer)
     .Reference(r => r.Operation)
     .LoadAsync();
 }
예제 #5
0
 public async Task AddAsync(Rescuer user)
 {
     await _context.Rescuers.AddAsync(user);
 }
예제 #6
0
 private static async void InsertNewRescuer(TriageReport report)
 {
     var res = new Rescuer(report);
     await rescuers.InsertOneAsync(res);
 }
예제 #7
0
        public async Task <IActionResult> CreateOperationAsync([FromBody] MissingPersonDocument document)
        {
            var operation = _mapper.Map <Operation>(document);

            var equipmentResult = await _equipmentService.FindByIdsAsync(document.EquipmentRequests);

            if (!equipmentResult.Success)
            {
                return(BadRequest(new { equipmentResult.Message }));
            }

            if (operation.RequestedEquipment == null)
            {
                operation.RequestedEquipment = new List <EquipmentRequest>();
            }

            foreach (var equipment in equipmentResult.Value)
            {
                operation.RequestedEquipment.Add(new EquipmentRequest
                {
                    Equipment = equipment,
                    Operation = operation
                });
            }

            var opResult = await _opService.CreateAsync(operation);

            if (!opResult.Success)
            {
                return(BadRequest(new
                {
                    Message = $"Unable to create operation: {opResult.Message}"
                }));
            }
            var rand = new Random();

            for (var i = 20; i > 0; i--)
            {
                var name    = Names[rand.Next(0, Names.Length - 1)];
                var rescuer = new Rescuer
                {
                    Name                   = name,
                    Email                  = $"{name.Split(" ").Join(".")}@example.com",
                    PhoneNumber            = $"+666{rand.Next(58000000, 59999999)}",
                    Age                    = (ushort)rand.Next(18, 40),
                    EstimatedTimeOfArrival = DateTime.Now
                                             .AddMinutes(rand.Next(0, 60)),
                    AvailableUntil = DateTime.Now
                                     .AddMinutes(30)
                                     .AddMinutes(rand.Next(1 * 4, 6 * 4) * 15),
                    Inventory = new List <EquipmentInventory>()
                };

                operation.RequestedEquipment
                .ConvertAll(x => new EquipmentInventory
                {
                    EquipmentRequest = x,
                    Rescuer          = rescuer
                })
                .Where(x => rand.Next(0, 5) > 2)
                .ToList()
                .ForEach(n => rescuer.Inventory.Add(n));

                await _opService.JoinAsync(opResult.Value.Id, rescuer);
            }

            var resource = _mapper.Map <OperationResource>(opResult.Value);

            return(Created(resource.Id, new { Operation = resource }));
        }