示例#1
0
        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));
        }
示例#2
0
        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;
            "));
        }
示例#3
0
        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");
            }
        }
示例#4
0
        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));
        }
示例#5
0
        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;
            "));
        }