Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/15/16 15:53:02 (9 years ago)
Author:
jlodewyc
Message:

#2582 Saving calendars to server, update not working

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/WebJobManager/HeuristicLab.Clients.Hive.WebJobManager/Hubs/CalendarHub.cs

    r13754 r13768  
    66using System.Collections.Generic;
    77using System.Linq;
     8using System.Threading;
    89using System.Threading.Tasks;
    910
     
    4748            Clients.Caller.processDowntime(id, down);
    4849        }
     50        public void saveCalendar(string id, string[] del, string[][] add, string[][] upd, bool fresh, bool last)
     51        {
     52            loader();
     53            var calid = Guid.Parse(id);
     54            adminClient.Refresh();
     55            adminClient.DowntimeForResourceId = calid;
     56            adminClient.RefreshCalendar();
     57            var downlist = adminClient.Downtimes.ToList();
     58            foreach(var s in del)
     59            {
     60                var gu = Guid.Parse(s);
     61                var el = downlist.Find(x => x.Id == gu);
     62                adminClient.Delete(el);
     63            }
     64            foreach (var s in add)
     65            {
     66                var obj = new Downtime();
     67                obj.Id = Guid.Empty;
     68                if (s[0] == "Unavailable")
     69                    obj.DowntimeType = DowntimeType.Offline;
     70                else
     71                    obj.DowntimeType = DowntimeType.Shutdown;
     72                obj.StartDate = (new DateTime(1970, 1, 1)).AddMilliseconds(double.Parse(s[1]));
     73                obj.EndDate = (new DateTime(1970, 1, 1)).AddMilliseconds(double.Parse(s[2]));
     74                if (s[3] == "true")
     75                    obj.AllDayEvent = true;
     76                else
     77                    obj.AllDayEvent = false;
     78                obj.ResourceId = Guid.Parse(s[4]);
     79                adminClient.Store(obj, CancellationToken.None);
     80            }
     81            foreach(var s in upd)
     82            {
     83                 var obj = downlist.Find(x => x.Id == Guid.Parse(s[0]));
     84                if (s[1] == "Unavailable")
     85                    obj.DowntimeType = DowntimeType.Offline;
     86                else
     87                    obj.DowntimeType = DowntimeType.Shutdown;
     88                obj.StartDate = (new DateTime(1970, 1, 1)).AddMilliseconds(double.Parse(s[2]));
     89                obj.EndDate = (new DateTime(1970, 1, 1)).AddMilliseconds(double.Parse(s[3]));
     90                if (s[4] == "true")
     91                    obj.AllDayEvent = true;
     92                else
     93                    obj.AllDayEvent = false;
     94                 //adminClient.Store(obj, CancellationToken.None); Throws error
     95            }
     96            if( last)
     97            {
     98                Clients.Caller.savingAllDone();
     99            }
     100            else if (fresh)
     101            {
     102                Clients.Caller.savingCurrentDone();
     103            }
     104        }
    49105    }
    50106}
Note: See TracChangeset for help on using the changeset viewer.