public async Task <CarWashShortEntity> UpdateCarWash(IOperation operation, CarWashFullEntity entity) { if (!await carWashStore.IsExist(operation, entity.Id)) { throw new Exception(ExceptionMessage.CarWashIsNotExist); } var invalidatedHours = ValidateCarWashWorkingHours(entity).ToList(); if (invalidatedHours.Any()) { throw new Exception(ExceptionMessage.IncorrectWorkingHoursData(invalidatedHours)); } return(await carWashStore.Update(operation, entity)); }
public async Task <CarWashShortEntity> Update(IOperation operation, CarWashFullEntity entity) { return(await operation.QuerySingleOrDefaultAsync <CarWashShortEntity>(entity, @" DECLARE @UpdatedCarWash TABLE ([Id] INT, [Name] NVARCHAR (50), [Location] NVARCHAR (512)); UPDATE [company].[CarWash] SET [Name] = @Name, [Email] = @Email, [Phone] = @Phone, [Location] = @Location, [CoordinateX] = @CoordinateX, [CoordinateY] = @CoordinateY, [Description] = @Description, [HasCafe] = @HasCafe, [HasRestZone] = @HasRestZone, [HasParking] = @HasParking, [HasWC] = @HasWC, [HasCardPayment] = @HasCardPayment OUTPUT INSERTED.[Id], INSERTED.[Name], INSERTED.[Location] INTO @UpdatedCarWash WHERE [Id] = @Id; UPDATE [company].[CarWashWorkingHours] SET [MondayStartTime] = @MondayStartTime, [MondayStopTime] = @MondayStopTime, [TuesdayStartTime] = @TuesdayStartTime, [TuesdayStopTime] = @TuesdayStopTime, [WednesdayStartTime] = @WednesdayStartTime, [WednesdayStopTime] = @WednesdayStopTime, [ThursdayStartTime] = @ThursdayStartTime, [ThursdayStopTime] = @ThursdayStopTime, [FridayStartTime] = @FridayStartTime, [FridayStopTime] = @FridayStopTime, [SaturdayStartTime] = @SaturdayStartTime, [SaturdayStopTime] = @SaturdayStopTime, [SundayStartTime] = @SundayStartTime, [SundayStopTime] = @SundayStopTime WHERE [CarWashId] = @Id; SELECT [Id], [Name], [Location] FROM @UpdatedCarWash; ")); }
private static IEnumerable <string> ValidateCarWashWorkingHours(CarWashFullEntity entity) { if (!(entity.MondayStartTime.HasValue && entity.MondayStopTime.HasValue || !entity.MondayStartTime.HasValue && !entity.MondayStopTime.HasValue)) { yield return("Monday"); } if (!(entity.TuesdayStartTime.HasValue && entity.TuesdayStopTime.HasValue || !entity.TuesdayStartTime.HasValue && !entity.TuesdayStopTime.HasValue)) { yield return("Tuesday"); } if (!(entity.WednesdayStartTime.HasValue && entity.WednesdayStopTime.HasValue || !entity.WednesdayStartTime.HasValue && !entity.WednesdayStopTime.HasValue)) { yield return("Wednesday"); } if (!(entity.ThursdayStartTime.HasValue && entity.ThursdayStopTime.HasValue || !entity.ThursdayStartTime.HasValue && !entity.ThursdayStopTime.HasValue)) { yield return("Thursday"); } if (!(entity.FridayStartTime.HasValue && entity.FridayStopTime.HasValue || !entity.FridayStartTime.HasValue && !entity.FridayStopTime.HasValue)) { yield return("Friday"); } if (!(entity.SaturdayStartTime.HasValue && entity.SaturdayStopTime.HasValue || !entity.SaturdayStartTime.HasValue && !entity.SaturdayStopTime.HasValue)) { yield return("Saturday"); } if (!(entity.SundayStartTime.HasValue && entity.SundayStopTime.HasValue || !entity.SundayStartTime.HasValue && !entity.SundayStopTime.HasValue)) { yield return("Sunday"); } }
public async Task <CarWashShortEntity> AddCarWash(IOperation operation, int userId, CarWashFullEntity entity) { var invalidatedHours = ValidateCarWashWorkingHours(entity).ToList(); if (invalidatedHours.Any()) { throw new Exception(ExceptionMessage.IncorrectWorkingHoursData(invalidatedHours)); } return(await carWashStore.Add(operation, userId, entity)); }
public async Task <CarWashShortEntity> Add(IOperation operation, int userId, CarWashFullEntity entity) { return(await operation.QuerySingleOrDefaultAsync <CarWashShortEntity>(new { UserId = userId, entity.Name, entity.Email, entity.Phone, entity.Location, entity.CoordinateX, entity.CoordinateY, entity.Description, entity.HasCafe, entity.HasRestZone, entity.HasParking, entity.HasWC, entity.HasCardPayment, entity.MondayStartTime, entity.MondayStopTime, entity.TuesdayStartTime, entity.TuesdayStopTime, entity.WednesdayStartTime, entity.WednesdayStopTime, entity.ThursdayStartTime, entity.ThursdayStopTime, entity.FridayStartTime, entity.FridayStopTime, entity.SaturdayStartTime, entity.SaturdayStopTime, entity.SundayStartTime, entity.SundayStopTime }, @" DECLARE @NewCarWash TABLE ([Id] INT, [Name] NVARCHAR (50), [Location] NVARCHAR (512)); INSERT INTO [company].[CarWash] ( [CompanyId], [Name], [Email], [Phone], [Location], [CoordinateX], [CoordinateY], [Description], [HasCafe], [HasRestZone], [HasParking], [HasWC], [HasCardPayment] ) OUTPUT INSERTED.[Id], INSERTED.[Name], INSERTED.[Location] INTO @NewCarWash SELECT [Id], @Name, @Email, @Phone, @Location, @CoordinateX, @CoordinateY, @Description, @HasCafe, @HasRestZone, @HasParking, @HasWC, @HasCardPayment FROM [company].[Company] WHERE [UserId] = @UserId; INSERT INTO [company].[CarWashWorkingHours] ( [CarWashId], [MondayStartTime], [MondayStopTime], [TuesdayStartTime], [TuesdayStopTime], [WednesdayStartTime], [WednesdayStopTime], [ThursdayStartTime], [ThursdayStopTime], [FridayStartTime], [FridayStopTime], [SaturdayStartTime], [SaturdayStopTime], [SundayStartTime], [SundayStopTime] ) SELECT ncw.[Id], @MondayStartTime, @MondayStopTime, @TuesdayStartTime, @TuesdayStopTime, @WednesdayStartTime, @WednesdayStopTime, @ThursdayStartTime, @ThursdayStopTime, @FridayStartTime, @FridayStopTime, @SaturdayStartTime, @SaturdayStopTime, @SundayStartTime, @SundayStopTime FROM @NewCarWash ncw; SELECT [Id], [Name], [Location] FROM @NewCarWash; ")); }