예제 #1
0
파일: TimeSlot.cs 프로젝트: liamning/PF
    public void Insert(TimeSlotInfo info)
    {
        db.Open();

        string query = "INSERT INTO [dbo].[TimeSlot] ( [TimeSlotCode] "
                       + ",[TimeSlotType] "
                       + ",[TimeSlotDesc] "
                       + ",[HourRate] "
                       + ",[Remarks] "
                       + ",[CreateUser] "
                       + ",[CreateDate] "
                       + ",[LastModifyUser] "
                       + ",[LastModifyDate] "
                       + ") "
                       + "VALUES ( @TimeSlotCode "
                       + ",@TimeSlotType "
                       + ",@TimeSlotDesc "
                       + ",@HourRate "
                       + ",@Remarks "
                       + ",@CreateUser "
                       + ",@CreateDate "
                       + ",@LastModifyUser "
                       + ",@LastModifyDate "
                       + ") ";


        db.Execute(query, info);
        db.Close();
    }
예제 #2
0
파일: TimeSlot.cs 프로젝트: liamning/PF
    public bool IsExisted(TimeSlotInfo info)
    {
        db.Open();
        String query = "select count(*)  from TimeSlot "
                       + " where TimeSlotCode = @TimeSlotCode ";
        var obj = (List <int>)db.Query <int>(query, info);

        db.Close();
        return(obj[0] > 0);
    }
예제 #3
0
파일: TimeSlot.cs 프로젝트: liamning/PF
 public void Save(TimeSlotInfo info)
 {
     if (this.IsExisted(info))
     {
         this.Update(info);
     }
     else
     {
         this.Insert(info);
     }
 }
예제 #4
0
파일: TimeSlot.cs 프로젝트: liamning/PF
    public void Update(TimeSlotInfo info)
    {
        db.Open();

        string query = " UPDATE [dbo].[TimeSlot] SET  "
                       + " [TimeSlotType] = @TimeSlotType "
                       + ", [TimeSlotDesc] = @TimeSlotDesc "
                       + ", [HourRate] = @HourRate "
                       + ", [Remarks] = @Remarks "
                       + ", [CreateUser] = @CreateUser "
                       + ", [CreateDate] = @CreateDate "
                       + ", [LastModifyUser] = @LastModifyUser "
                       + ", [LastModifyDate] = @LastModifyDate "
                       + " where TimeSlotCode = @TimeSlotCode ";


        db.Execute(query, info);
        db.Close();
    }
예제 #5
0
        public string Edit(FormDataCollection form)
        {
            var retVal    = string.Empty;
            var operation = form.Get("oper");
            var id        = form.Get("Id").Split(',')[0].ToInt32();

            if (string.IsNullOrEmpty(operation))
            {
                return(retVal);
            }

            TimeSlotInfo info;

            switch (operation)
            {
            case "edit":
                info = CatalogRepository.GetInfo <TimeSlotInfo>(id);
                if (info != null)
                {
                    info.Name      = form.Get("Name");
                    info.OrderTime = form.Get("OrderTime").ToInt32();
                    CatalogRepository.Update(info);
                }
                break;

            case "add":
                info = new TimeSlotInfo
                {
                    Name      = form.Get("Name"),
                    OrderTime = form.Get("OrderTime").ToInt32()
                };
                CatalogRepository.Create(info);
                break;

            case "del":
                CatalogRepository.Delete <TimeSlotInfo>(id);
                break;
            }
            StoreData.ReloadData <TimeSlotInfo>();
            return(retVal);
        }
예제 #6
0
        public HttpResponseMessage UpdateTimeSlot(TimeSlotInfo timeSlot)
        {
            try
            {
                var updatesToProcess = false;
                var originalTimeSlot = TimeSlotDataAccess.GetItem(timeSlot.TimeSlotId, timeSlot.CodeCampId);

                updatesToProcess = TimeSlotHasUpdates(ref originalTimeSlot, ref timeSlot);

                if (updatesToProcess)
                {
                    originalTimeSlot.LastUpdatedByDate   = DateTime.Now;
                    originalTimeSlot.LastUpdatedByUserId = UserInfo.UserID;

                    TimeSlotDataAccess.UpdateItem(originalTimeSlot);
                }

                var savedTimeSlot = TimeSlotDataAccess.GetItem(timeSlot.TimeSlotId, timeSlot.CodeCampId);

                // removing this prevented the saved/retrieved time from being offset to being about 4 hours off
                //if (savedTimeSlot != null)
                //{
                //    savedTimeSlot.BeginTime = savedTimeSlot.BeginTime.ToLocalTime();
                //    savedTimeSlot.EndTime = savedTimeSlot.EndTime.ToLocalTime();
                //}

                var response = new ServiceResponse <TimeSlotInfo> {
                    Content = savedTimeSlot
                };

                return(Request.CreateResponse(HttpStatusCode.OK, response.ObjectToJson()));
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ERROR_MESSAGE));
            }
        }
예제 #7
0
        public HttpResponseMessage CreateTimeSlot(TimeSlotInfo timeSlot)
        {
            try
            {
                var timeStamp = DateTime.Now;

                timeSlot.CreatedByDate       = timeStamp;
                timeSlot.CreatedByUserId     = UserInfo.UserID;
                timeSlot.LastUpdatedByDate   = timeStamp;
                timeSlot.LastUpdatedByUserId = UserInfo.UserID;

                TimeSlotDataAccess.CreateItem(timeSlot);

                var timeSlots = TimeSlotDataAccess.GetItems(timeSlot.CodeCampId);

                var savedTimeSlot = timeSlots.OrderByDescending(s => s.CreatedByDate).FirstOrDefault(s => s.BeginTime == timeSlot.BeginTime);

                // removing this prevented the saved/retrieved time from being offset to being about 4 hours off
                //if (savedTimeSlot != null)
                //{
                //    savedTimeSlot.BeginTime = savedTimeSlot.BeginTime.ToLocalTime();
                //    savedTimeSlot.EndTime = savedTimeSlot.EndTime.ToLocalTime();
                //}

                var response = new ServiceResponse <TimeSlotInfo> {
                    Content = savedTimeSlot
                };

                return(Request.CreateResponse(HttpStatusCode.OK, response.ObjectToJson()));
            }
            catch (Exception ex)
            {
                Exceptions.LogException(ex);
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ERROR_MESSAGE));
            }
        }
예제 #8
0
        private bool TimeSlotHasUpdates(ref TimeSlotInfo originalTimeSlot, ref TimeSlotInfo timeSlot)
        {
            var updatesToProcess = false;

            if (timeSlot.BeginTime != originalTimeSlot.BeginTime)
            {
                originalTimeSlot.BeginTime = timeSlot.BeginTime;
                updatesToProcess           = true;
            }

            if (timeSlot.EndTime != originalTimeSlot.EndTime)
            {
                originalTimeSlot.EndTime = timeSlot.EndTime;
                updatesToProcess         = true;
            }

            if (!string.Equals(timeSlot.AgendaText, originalTimeSlot.AgendaText))
            {
                originalTimeSlot.AgendaText = timeSlot.AgendaText;
                updatesToProcess            = true;
            }

            if (timeSlot.SpanAllTracks != originalTimeSlot.SpanAllTracks)
            {
                originalTimeSlot.SpanAllTracks = timeSlot.SpanAllTracks;
                updatesToProcess = true;
            }

            if (timeSlot.IncludeInDropDowns != originalTimeSlot.IncludeInDropDowns)
            {
                originalTimeSlot.IncludeInDropDowns = timeSlot.IncludeInDropDowns;
                updatesToProcess = true;
            }

            if (originalTimeSlot.CustomProperties != null)
            {
                // parse custom properties for updates
                foreach (var property in originalTimeSlot.CustomPropertiesObj)
                {
                    if (timeSlot.CustomPropertiesObj.Any(p => p.Name == property.Name))
                    {
                        // see if the existing property needs to be updated
                        var prop = timeSlot.CustomPropertiesObj.FirstOrDefault(p => p.Name == property.Name);
                        if (!string.Equals(prop.Value, property.Value))
                        {
                            property.Value   = prop.Value;
                            updatesToProcess = true;
                        }
                    }
                    else
                    {
                        // delete the property
                        originalTimeSlot.CustomPropertiesObj.Remove(property);
                        updatesToProcess = true;
                    }
                }
            }

            if (timeSlot.CustomPropertiesObj != null)
            {
                // add any new properties
                if (originalTimeSlot.CustomProperties == null)
                {
                    foreach (var property in timeSlot.CustomPropertiesObj)
                    {
                        originalTimeSlot.CustomPropertiesObj.Add(property);
                        updatesToProcess = true;
                    }
                }
                else
                {
                    TimeSlotInfo slot = originalTimeSlot;
                    foreach (var property in timeSlot.CustomPropertiesObj.Where(property => !slot.CustomPropertiesObj.Contains(property)))
                    {
                        slot.CustomPropertiesObj.Add(property);
                        updatesToProcess = true;
                    }
                }
            }

            return(updatesToProcess);
        }