예제 #1
0
        public List <EditorialCalendarModel> GetCalendar()
        {
            var lResult = new List <EditorialCalendarModel>();
            var lLogMsg = string.Empty;
            var lEditorialCalendarOutput = new List <EditorialCalendarModel>();
            var lstEditorialRecords      = new List <loreal_print.Models.EditorialCalendar>();

            var pContext = HttpContext.Current;

            // Get BookID, VersionID & Year from Cookie
            var lCookieData = CookieManagement.GetCookie(pContext);

            try
            {
                using (Loreal_DEVEntities6 db = new Loreal_DEVEntities6())
                {
                    lstEditorialRecords = db.EditorialCalendars
                                          .Where(e => e.BookID == lCookieData.BookID && e.Year == lCookieData.Year && e.VersionID == lCookieData.VersionID)
                                          .ToList();

                    if (lstEditorialRecords.Any())
                    {
                        foreach (var calItem in lstEditorialRecords)
                        {
                            //recordCount++;

                            var newEditorialCalendarOutput = new EditorialCalendarModel
                            {
                                EditorialCalendarID = calItem.EditorialCalendarID,
                                BookID                          = Convert.ToInt32(lCookieData.BookID),
                                Year                            = lCookieData.Year,
                                VersionID                       = lCookieData.VersionID,
                                IssueDate                       = calItem.IssueDate,
                                EditorialTheme                  = calItem.EditorialTheme,
                                OnSaleDate                      = calItem.OnSaleDate.ToString("MM/dd/yyyy"),
                                MailToSubscribersDate           = calItem.MailToSubscribersDate.ToString("MM/dd/yyyy"),
                                SpaceClosingDateROB             = calItem.SpaceClosingDate_ROB.ToString("MM/dd/yyyy"),
                                SpaceClosingDateCovers          = calItem.SpaceClosingDate_Covers.ToString("MM/dd/yyyy"),
                                SpaceClosingDateScentStrips     = calItem.SpaceClosingDate_ScentStrips.ToString("MM/dd/yyyy"),
                                MaterialsClosingDateROB         = calItem.MaterialsClosingDate_ROB.ToString("MM/dd/yyyy"),
                                MaterialsClosingDateCovers      = calItem.MaterialsClosingDate_Covers.ToString("MM/dd/yyyy"),
                                MaterialsClosingDateScentStrips = calItem.MaterialsClosingDate_ScentStrips.ToString("MM/dd/yyyy")
                            };
                            lEditorialCalendarOutput.Add(newEditorialCalendarOutput);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                var lReturnMessage = String.Format("Error in Repository EditorialCalendar GetCalendar method.  Publisher: {0}, Book: {1}, BookID: {2}.", lCookieData.Publisher, lCookieData.Book, lCookieData.BookID);
                lLogMsg = String.Format(lReturnMessage + "ERROR MESSAGE: {0}.  SOURCE: {1}. STACKTRACE: {2}.", ex.Message, ex.Source, ex.StackTrace);
                logger.Error(lLogMsg);
                throw new Exception(lReturnMessage);
            }
            if (lEditorialCalendarOutput.Any())
            {
                lResult = lEditorialCalendarOutput;
            }

            return(lResult);
        }
        public IHttpActionResult saveEditorialCalendar(EditorialCalendarModel calendarRecord)
        {
            /* There is no way to guarantee uniqueness.  Therefore, whenever changes/additions are made:
             * 1. All records are sent up
             * 2. All existing records are DELETED
             * 3. All records included in the calendarRecords collection are INSERTED */

            IHttpActionResult lResult = null;
            var lLogMsg = string.Empty;
            var lEditorialCalendarID = int.MinValue;

            // Get BookID, VersionID & Year from Cookie
            var pContext    = System.Web.HttpContext.Current;
            var lCookieData = CookieManagement.GetCookie(pContext);

            // Verify Incoming Date Values passed as Strings
            var isValidDate = calendarRecord.ValidateDateFields(calendarRecord);

            if (ModelState.IsValid && isValidDate)
            {
                if (calendarRecord != null)
                {
                    try
                    {
                        using (Loreal_DEVEntities6 db = new Loreal_DEVEntities6())
                        {
                            if (calendarRecord.EditorialCalendarID > 0)
                            {
                                // Update Existing record
                                var lUpdateCalRecord = db.EditorialCalendars.Find(calendarRecord.EditorialCalendarID);

                                lUpdateCalRecord.Year                             = lCookieData.Year;
                                lUpdateCalRecord.BookID                           = Convert.ToInt32(lCookieData.BookID);
                                lUpdateCalRecord.VersionID                        = lCookieData.VersionID;
                                lUpdateCalRecord.IssueDate                        = calendarRecord.IssueDate;
                                lUpdateCalRecord.EditorialTheme                   = calendarRecord.EditorialTheme;
                                lUpdateCalRecord.OnSaleDate                       = Convert.ToDateTime(calendarRecord.OnSaleDate);
                                lUpdateCalRecord.MailToSubscribersDate            = Convert.ToDateTime(calendarRecord.MailToSubscribersDate);
                                lUpdateCalRecord.SpaceClosingDate_ROB             = Convert.ToDateTime(calendarRecord.SpaceClosingDateROB);
                                lUpdateCalRecord.SpaceClosingDate_Covers          = Convert.ToDateTime(calendarRecord.SpaceClosingDateCovers);
                                lUpdateCalRecord.SpaceClosingDate_ScentStrips     = Convert.ToDateTime(calendarRecord.SpaceClosingDateScentStrips);
                                lUpdateCalRecord.MaterialsClosingDate_ROB         = Convert.ToDateTime(calendarRecord.MaterialsClosingDateROB);
                                lUpdateCalRecord.MaterialsClosingDate_Covers      = Convert.ToDateTime(calendarRecord.MaterialsClosingDateCovers);
                                lUpdateCalRecord.MaterialsClosingDate_ScentStrips = Convert.ToDateTime(calendarRecord.MaterialsClosingDateScentStrips);
                            }
                            else
                            {
                                // Create
                                var lNewCalRecord = new EditorialCalendar
                                {
                                    Year                             = lCookieData.Year,
                                    BookID                           = Convert.ToInt32(lCookieData.BookID),
                                    VersionID                        = lCookieData.VersionID,
                                    IssueDate                        = calendarRecord.IssueDate,
                                    EditorialTheme                   = calendarRecord.EditorialTheme,
                                    OnSaleDate                       = Convert.ToDateTime(calendarRecord.OnSaleDate),
                                    MailToSubscribersDate            = Convert.ToDateTime(calendarRecord.MailToSubscribersDate),
                                    SpaceClosingDate_ROB             = Convert.ToDateTime(calendarRecord.SpaceClosingDateROB),
                                    SpaceClosingDate_Covers          = Convert.ToDateTime(calendarRecord.SpaceClosingDateCovers),
                                    SpaceClosingDate_ScentStrips     = Convert.ToDateTime(calendarRecord.SpaceClosingDateScentStrips),
                                    MaterialsClosingDate_ROB         = Convert.ToDateTime(calendarRecord.MaterialsClosingDateROB),
                                    MaterialsClosingDate_Covers      = Convert.ToDateTime(calendarRecord.MaterialsClosingDateCovers),
                                    MaterialsClosingDate_ScentStrips = Convert.ToDateTime(calendarRecord.MaterialsClosingDateScentStrips),

                                    Load_Date = DateTime.Now
                                };
                                db.EditorialCalendars.Add(lNewCalRecord);
                            }
                            //var lCalRecords = db.EditorialCalendars.Where(c => (c.Year == lCookieData.Year
                            //                    && c.BookID == lCookieData.BookID
                            //                    && c.VersionID == lCookieData.VersionID
                            //                   )).ToList();

                            //if (lCalRecords.Any())
                            //{
                            //    // Delete all existing records.
                            //    //obj.tblA.Where(x => x.fid == i).ToList().ForEach(obj.tblA.DeleteObject);
                            //    //obj.SaveChanges();
                            //    foreach (var calRecord in lCalRecords)
                            //    {
                            //        db.EditorialCalendars.Remove(calRecord);
                            //    }
                            //}
                            //lCircID = db.SaveChanges();

                            // Create All records sent
                            //foreach (var calItem in calendarRecords)
                            //{

                            //}
                            lEditorialCalendarID = db.SaveChanges();
                        }
                    }
                    catch (Exception ex)
                    {
                        var lReturnMessage = String.Format("Error in saveEditorialCalendar.  Publisher: {0}, Book: {1}, BookID: {2}.",
                                                           lCookieData.Publisher, lCookieData.Book, lCookieData.BookID);
                        lLogMsg = String.Format(lReturnMessage + "ERROR MESSAGE: {0}.  SOURCE: {1}. STACKTRACE: {2}.", ex.Message, ex.Source, ex.StackTrace);
                        logger.Error(lLogMsg);
                        lResult = BadRequest(lReturnMessage);
                    }
                }
            }
            else
            {
                string errorMessages = string.Empty;

                if (ModelState.Values.Any())
                {
                    errorMessages = string.Join("; ", ModelState.Values
                                                .SelectMany(e => e.Errors)
                                                .Select(e => e.ErrorMessage));
                }
                else
                {
                    errorMessages = calendarRecord.EditorialErrorMsg;
                }
                return(BadRequest(errorMessages));
            }

            if (lEditorialCalendarID > int.MinValue)
            {
                lResult = Ok(lEditorialCalendarID);
            }
            else
            {
                lResult = Ok();
            }
            return(lResult);
        }