コード例 #1
0
        public async override Task <CommonResponseMessage> GetClinics(CommonRequestMessage request, ServerCallContext context)
        {
            var result = new CommonResponseMessage();

            var dto   = JsonConvert.DeserializeObject <PaginationRequestDto>(request.Content);
            var query = await clinicRepository.GetAll();

            var totalItem = query.Count();
            var property  = typeof(Clinic).GetProperties().Where(p => p.CanWrite && p.Name.ToLower() == dto.Column?.ToLower()).SingleOrDefault();

            switch (dto.Type)
            {
            case PaginationType.Sorting:
                query = dto.IsAscending ? query.OrderBy(c => property.GetValue(c)) : query.OrderByDescending(c => property.GetValue(c));
                break;

            case PaginationType.Searching:
                query = query.Where(c => c.Name != null && c.Name.ToLower().Contains(dto.SearchText?.ToLower()));
                break;

            default:
                break;
            }
            query = query.Skip(dto.Page * dto.PageItemCount).Take(dto.PageItemCount);

            var clinics = query?.ToClinicItemDtoList();

            var paginatedList = new Paginatedlist <ClinicItemDto>(clinics, dto.Page, totalItem, dto.PageItemCount);

            return(new CommonResponseMessage {
                Content = JsonConvert.SerializeObject(paginatedList), Message = "Success", Status = true
            });
        }
コード例 #2
0
        public async Task UpdateEquipment_DataDrivenTest(EquipmentUpdateDto model, bool expectation)
        {
            try
            {
                var equipmentId = Context.Equipments.First()?.Id;

                model.Id = equipmentId.Value;
                var requestModel = new CommonRequestMessage {
                    Content = JsonConvert.SerializeObject(model)
                };

                CommonResponseMessage response = await sut.UpdateEquipment(requestModel, default(ServerCallContext));

                var equipment = JsonConvert.DeserializeObject <EquipmentDetailDto>(response.Content);

                if (expectation)
                {
                    Assert.True(response.Status);
                    Assert.Equal(equipment.Id, model.Id);
                }
                else
                {
                    Assert.False(response.Status);
                }
            }
            catch
            {
                Assert.True(false);
            }
        }
コード例 #3
0
        public async override Task <CommonResponseMessage> UpdateEquipment(CommonRequestMessage request, ServerCallContext context)
        {
            var dto = JsonConvert.DeserializeObject <EquipmentUpdateDto>(request.Content);

            if (!await clinicRepository.Any(dto.ClinicId))
            {
                return(new CommonResponseMessage {
                    Content = "", Message = $"There is no clinic with id : {dto.ClinicId}", Status = false
                });
            }

            var equipment = await equipmentRepository.Get(dto.Id);

            if (equipment == null)
            {
                return new CommonResponseMessage {
                           Content = "", Message = "Unable to find equipment to update", Status = false
                }
            }
            ;

            equipment.Parse(dto);
            await equipmentRepository.SaveChangesAsync();

            var result = equipment.ToEquipmentDetailDto();

            return(new CommonResponseMessage {
                Content = JsonConvert.SerializeObject(result), Message = "Success", Status = true
            });
        }
コード例 #4
0
        public async override Task <CommonResponseMessage> GetEquipments(CommonRequestMessage request, ServerCallContext context)
        {
            var dto = JsonConvert.DeserializeObject <EquipmentPaginationRequestDto>(request.Content);

            var query = await equipmentRepository.GetAllIncludeAll();

            if (dto.ClinicId > 0)
            {
                query = query.Where(c => c.ClinicId == dto.ClinicId);
            }

            var totalItem = query.Count();

            query = SortAndFilterEquipments(dto, query);

            query = query.Skip(dto.Page * dto.PageItemCount)
                    .Take(dto.PageItemCount);

            var equipments = query?.ToEquipmentItemDtoList();

            var result = new Paginatedlist <EquipmentItemDto>(equipments, dto.Page, totalItem, dto.PageItemCount);

            return(new CommonResponseMessage {
                Content = JsonConvert.SerializeObject(result), Message = "Success", Status = true
            });
        }
コード例 #5
0
        public async override Task <CommonResponseMessage> GetEquipment(CommonRequestMessage request, ServerCallContext context)
        {
            var equipmentId = JsonConvert.DeserializeObject <int>(request.Content);
            var equipment   = (await equipmentRepository.Get(equipmentId))?.ToEquipmentDetailDto();
            var result      = new CommonResponseMessage {
                Content = JsonConvert.SerializeObject(equipment), Message = "Success", Status = true
            };

            return(result);
        }
コード例 #6
0
        public async Task GetEquipment_ReturnsNull_When_IdAbsent()
        {
            var equipmentId = int.MaxValue;

            var requestModel = new CommonRequestMessage {
                Content = JsonConvert.SerializeObject(equipmentId)
            };

            var result = await sut.GetEquipment(requestModel, default(ServerCallContext));

            var equipment = JsonConvert.DeserializeObject <EquipmentDetailDto>(result.Content);

            Assert.True(result.Status);
            Assert.Null(equipment);
        }
コード例 #7
0
        public async Task DeleteEquipment_IsSuccess()
        {
            var clinicToClone  = equipmentRepository.GetAll().Result.First();
            var clinicToInsert = JsonConvert.DeserializeObject <Equipment>(JsonConvert.SerializeObject(clinicToClone));

            clinicToInsert.Name = "Equipment to be deleted";
            clinicToInsert.Id   = 0;
            equipmentRepository.Add(clinicToInsert);
            equipmentRepository.SaveChanges();

            var requestModel = new CommonRequestMessage {
                Content = JsonConvert.SerializeObject(clinicToInsert.Id)
            };

            var result = await sut.DeleteEquipment(requestModel, default(ServerCallContext));

            Assert.True(result.Status);
        }
コード例 #8
0
        public async Task InsertEquipment_DataDrivenTest(EquipmentInsertDto model, bool expectation)
        {
            var requestModel = new CommonRequestMessage {
                Content = JsonConvert.SerializeObject(model)
            };

            CommonResponseMessage response = await sut.InsertEquipment(requestModel, default(ServerCallContext));

            var equipment = JsonConvert.DeserializeObject <EquipmentDetailDto>(response.Content);

            if (expectation)
            {
                Assert.True(response.Status);
                Assert.NotNull(equipment);
                Assert.Equal(equipment.Name, model.Name);
            }
            else
            {
                Assert.Null(equipment);
            }
        }
コード例 #9
0
        public async override Task <CommonResponseMessage> DeleteEquipment(CommonRequestMessage request, ServerCallContext context)
        {
            var equipmentId = JsonConvert.DeserializeObject <int>(request.Content);

            var equipmentToDelete = await equipmentRepository.Get(equipmentId);

            if (equipmentToDelete == null)
            {
                return new CommonResponseMessage {
                           Content = "", Message = "Fail", Status = false
                }
            }
            ;

            equipmentRepository.Remove(equipmentToDelete);

            await equipmentRepository.SaveChangesAsync();

            return(new CommonResponseMessage {
                Content = "", Message = "Success", Status = true
            });
        }
コード例 #10
0
        public async override Task <CommonResponseMessage> InsertEquipment(CommonRequestMessage request, ServerCallContext context)
        {
            var equipmentToInsert = JsonConvert.DeserializeObject <EquipmentInsertDto>(request.Content);

            if (!await clinicRepository.Any(equipmentToInsert.ClinicId))
            {
                return(new CommonResponseMessage {
                    Content = "", Message = $"There is no clinic with id : {equipmentToInsert.ClinicId}", Status = false
                });
            }

            var equipment = equipmentToInsert.ToEquipment();

            equipmentRepository.Add(equipment);

            await equipmentRepository.SaveChangesAsync();

            var result = equipment.ToEquipmentDetailDto();

            return(new CommonResponseMessage {
                Content = JsonConvert.SerializeObject(result), Message = "Success", Status = true
            });
        }