-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path20210720105645_FunctionToTimeInitial.cs
More file actions
49 lines (43 loc) · 1.81 KB
/
20210720105645_FunctionToTimeInitial.cs
File metadata and controls
49 lines (43 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using Microsoft.EntityFrameworkCore.Migrations;
namespace AzureDevopsTracker.Migrations
{
public partial class FunctionToTimeInitial : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
var rawFunction = @"CREATE OR ALTER FUNCTION ToTime (@seconds int)
RETURNS varchar(50)
AS BEGIN
declare @seconds_in_a_day int = 86400;
declare @seconds_in_an_hour int = 3600;
declare @seconds_in_a_minute int = 60;
declare @text_to_return varchar(50) = '';
if(@seconds >= @seconds_in_a_day)
begin
declare @completed_days int = @seconds/@seconds_in_a_day;
select @text_to_return = CONCAT(@text_to_return, @completed_days, ' day(s)')
select @seconds = @seconds - (@seconds_in_a_day * @completed_days)
end
if(@seconds >= @seconds_in_an_hour)
begin
declare @completed_hours int = @seconds/@seconds_in_an_hour;
select @text_to_return = CONCAT(@text_to_return, ' ', @completed_hours, ' hour(s)')
select @seconds = @seconds - (@seconds_in_an_hour * @completed_hours)
end
if(@seconds >= @seconds_in_a_minute)
begin
declare @completed_minutes int = @seconds/@seconds_in_a_minute;
select @text_to_return = CONCAT(@text_to_return, ' ', @completed_minutes, ' minute(s)')
select @seconds = @seconds - (@seconds_in_a_minute * @completed_minutes)
end
return LTRIM(RTRIM(@text_to_return));
END";
migrationBuilder.Sql(rawFunction);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
var dropFunction = @$"DROP FUNCTION IF EXISTS dbo.ToTime";
migrationBuilder.Sql(dropFunction);
}
}
}