public async Task <int> AddRoasterAsync(Roaster roaster,
                                                string tags,
                                                Address address,
                                                string latitude,
                                                string longitude,
                                                IFormFile picture)
        {
            try
            {
                _logger.Information("Roaster admin service layer access in progress...");

                var roasterByName = await _roasterRepository.GetRoasterByNameNonTrackableAsync(roaster.Name);

                if (roasterByName != null)
                {
                    return(-1);
                }

                //Get and process tags string into tag entities
                var _localTags = await RoasterAdminServiceBuilder.BuildTagsListAsync(tags,
                                                                                     _tagRepository);

                //process address entity
                var _address = Address.New(address.AddressStr,
                                           address.OpeningHours,
                                           address.Latitude,
                                           address.Longitude);
                address = AddressCoordinatesTransformer.ConvertCoordinates(address, latitude, longitude);
                roaster.OfficeAddress = _address;
                _addressReposiotry.Add(_address);
                //add roasterTags  notes
                RoasterTagsPairsBuilder.BuildRoasterTags(_localTags,
                                                         roaster.Id,
                                                         _roasterTagRepository);

                var pictureBytes = BytePictureBuilder.GetBytePicture(picture);
                BytePictureBuilder.BindPicture(roaster.Id, pictureBytes, _pictureRepository);

                roaster = RoasterAdminServiceBuilder.AddRoasterNullPlugs(roaster);

                _roasterRepository.Add(roaster);
                await _roasterRepository.SaveChangesAsync();

                _logger.Information($"Roaster, Tags, RoasterTags, Addresses tables have been modified. Inserted roaster:\n Id: {roaster.Id}\n Roaster name: {roaster.Name}");
                return(0);
            }
            catch (Exception e)
            {
                _logger.Error($"Roaster admin service layer error occured! Error text message: {e.Message}");
                return(-2);
            }
        }
Beispiel #2
0
        public async Task <int> BindToRoasterNdAddressAsync(Guid id)
        {
            try
            {
                _logger.Information("Roaster request service layer access in progress...");

                var request = await _roasterRequestRepository.GetSingleAsync(id);

                var bindTags = await RoasterRequestServiceBuilder.BuildAndBindTags(request.TagString,
                                                                                   _tagRepository);

                var address = Address.New(request.Address.AddressStr,
                                          request.Address.OpeningHours,
                                          request.Address.Latitude,
                                          request.Address.Longitude);

                var roaster = RoasterRequestServiceBuilder.GenerateRoaster(request.Roaster);

                roaster.OfficeAddress = address;

                _addressRepository.Add(address);

                BytePictureBuilder.BindPicture(roaster.Id, request.Picture.Bytes, _pictureRepository);

                _roasterRepository.Add(roaster);

                RoasterTagsPairsBuilder.BuildRoasterTags(bindTags,
                                                         roaster.Id,
                                                         _roasterTagRepository);

                _pictureRequestRepository.Delete(request.Picture);
                _roasterRequestRepository.Delete(request);

                await _roasterRequestRepository.SaveChangesAsync();

                _logger.Information($"Roaster requests table has been modified. Roaster request:\n Id:{request.Id}");
                return(0);
            }
            catch (Exception e)
            {
                _logger.Error($"Roaster request service layer error occured! Error text message: {e.Message}");
                return(-1);
            }
        }
        public async Task <int> UpdateRoasterAsync(Roaster entity, string tags, string latitude, string longitude, IFormFile picture)
        {
            _logger.Information("Roaster admin service layer access in progress...");
            try
            {
                var broast = await _roasterRepository.GetRoasterByNameNonTrackableAsync(entity.Name);

                if (broast != null && !broast.Id.Equals(entity.Id))
                {
                    return(-1);
                }

                await RoasterAdminServiceBuilder.UpdateRoasterTagsAsync(tags,
                                                                        _tagRepository,
                                                                        _roasterTagRepository,
                                                                        entity.Id);

                await BytePictureBuilder.ReplacePicture(entity.Id, picture, _pictureRepository);


                var roasterAddress = await _addressReposiotry.GetSingleAsync(entity.OfficeAddress.Id);

                entity.OfficeAddress = AddressCoordinatesTransformer.ConvertCoordinates(entity.OfficeAddress, latitude, longitude);
                entity.OfficeAddress = RoasterAdminServiceBuilder.UpdateRoasterAddress(roasterAddress, entity.OfficeAddress);
                _addressReposiotry.Update(entity.OfficeAddress);

                entity = RoasterAdminServiceBuilder.AddRoasterNullPlugs(entity);
                _roasterRepository.Update(entity);
                await _roasterTagRepository.SaveChangesAsync();

                _logger.Information($"Roaster, Tags, RoasterTags, Addresses tables have been modified. Updated roaster:\n Id: {entity.Id}\n Roaster name: {entity.Name}");
                return(0);
            }
            catch (Exception e)
            {
                _logger.Error("Roaster admin service layer error occured! Error text message:" + e.Message);
                return(-2);
            }
        }
Beispiel #4
0
        public async Task <int> UpdateRoasterRequestAsync(RoasterRequest entity,
                                                          IFormFile picture)
        {
            try
            {
                _logger.Information("Roaster request service layer access in progress...");

                await BytePictureBuilder.ReplacePictureRequest(entity.Id,
                                                               picture,
                                                               _pictureRequestRepository);

                _roasterRequestRepository.Update(entity);
                await _roasterRequestRepository.SaveChangesAsync();

                _logger.Information($"Roaster requests table has been modified. Updated Roaster request:\n Id:{entity.Id}");
                return(0);
            }
            catch (Exception e)
            {
                _logger.Error($"Roaster request service layer error occured! Error text message: {e.Message}");
                return(-1);
            }
        }