コード例 #1
0
        public HttpResponseMessage Post(Timesheet timesheet)
        {
            timesheet.Name = timesheet.Name.ToLowerInvariant();

            var response = Request.CreateResponse(HttpStatusCode.Created, timesheet);

            var repository = _mongoContext.GetCollection<Timesheet>();
            repository.Insert(timesheet);

            // Where is the new timesheet?
            string uri = Url.Route(null, new { id = timesheet.Id });
            response.Headers.Location = new Uri(Request.RequestUri, uri);
            
            return response;
        }
コード例 #2
0
        public Timesheet Get(string name, int year, int month)
        {
            var repository = _mongoContext.GetCollection<Timesheet>();

            var query = Query.And(
                Query.EQ("Year", year),
                Query.EQ("Month", month),
                Query.EQ("Name", name.ToLowerInvariant()));

            var timesheet = repository.Find(query).SingleOrDefault();
            if (timesheet == null)
            {
                var days = Enumerable.Range(1, DateTime.DaysInMonth(year, month))  // Days: 1, 2 ... 31 etc.
                    .Select(day => new DateTime(year, month, day)) // Map each day to a date
                    .ToList(); // Load dates into a list

                var timesheetDays = new List<TimesheetDay>();
                days.ForEach(
                    d =>
                    timesheetDays.Add(new TimesheetDay
                    {
                        Date = d,
                        IsWeekend = d.DayOfWeek == DayOfWeek.Saturday || d.DayOfWeek == DayOfWeek.Sunday
                    }));

                timesheet = new Timesheet 
                { 
                    Name = name,
                    Year = year, 
                    Month = month, 
                    WorkingDays = timesheetDays 
                };
            }

            return timesheet;
        }